日韩精品中文字幕久久,97中文字幕在,欧美一性一乱一交一视频,漂亮人妻洗澡被公强 日日躁,欧美饥渴熟妇高潮喷水水,日本熟妇xxxx乱

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

1

導(dǎo)讀

魯班全棧式低代碼開發(fā)平臺(tái)(以下簡(jiǎn)稱魯班)是58房產(chǎn)自研的全棧式低代碼開發(fā)平臺(tái),我們的目標(biāo)是:人人都可以成為全棧開發(fā)工程師。讓后端人員可以干一些簡(jiǎn)單的前端工作,讓前端人員可以干一些簡(jiǎn)單的后端工作。2023年4月初上線,截止目前已經(jīng)擁有300 的用戶,開發(fā)了40 的應(yīng)用,并上線了270 模型、900 頁面、1600 的接口。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖1:魯班目前的使用情況(這個(gè)圖表也是用魯班開發(fā))

2

背景

2.1 傳統(tǒng)開發(fā)模式的不足

場(chǎng)景1: 我是一個(gè)后端開發(fā)工程師,日常工作是后端系統(tǒng)開發(fā),主要精力更關(guān)注于高并發(fā)、大數(shù)據(jù)、高性能的架構(gòu)設(shè)計(jì)、服務(wù)優(yōu)化等。但是偶爾也會(huì)有需求要做一兩個(gè)前端頁面,為產(chǎn)品或者運(yùn)維提供后端的數(shù)據(jù)查詢、報(bào)表展示、配置操作等。比如房產(chǎn)這邊做真房源項(xiàng)目中,產(chǎn)品上線一個(gè)新的治理策略之前,希望能夠先通過一個(gè)搜索頁面把一些房源搜索出來,手動(dòng)處理一部分看看效果。這種情況下在后端基礎(chǔ)能力已經(jīng)存在的情況下,就需要前端支持開發(fā)這個(gè)頁面,需要跨部門協(xié)作、PMO排期、開發(fā)測(cè)試上線。如果按照傳統(tǒng)開發(fā)模式,走需求評(píng)審,排期,開發(fā),測(cè)試,交付周期會(huì)很長,且資源緊張情況下,還存在被更高優(yōu)需求替代的現(xiàn)象。

場(chǎng)景2: 我是一個(gè)前端開發(fā)工程師/IOS/安卓開發(fā)工程師,日常工作是主要前端頁面與樣式的開發(fā)和功能實(shí)現(xiàn)。但是偶爾也會(huì)有一些小的需求,需要做數(shù)據(jù)庫的增刪改查操作,需要將這些操作封裝成接口供前端調(diào)用。比如房產(chǎn)做的58房產(chǎn)門戶網(wǎng)站內(nèi)部系統(tǒng),前端同學(xué)就需要自己設(shè)計(jì)數(shù)據(jù)庫存儲(chǔ)各網(wǎng)站的url地址、分類關(guān)系等,并需要提供增刪改查等操作。前端同學(xué)對(duì)于數(shù)據(jù)庫的設(shè)計(jì)、調(diào)用、接口封裝等并不熟悉,需要后端同學(xué)支持。

隨著軟件開發(fā)規(guī)模的增加和復(fù)雜度的提升,將軟件開發(fā)人員劃分為不同的角色,如前端開發(fā)、后端開發(fā)、數(shù)據(jù)庫工程師、算法工程師、測(cè)試人員等,這種劃分使得不同開發(fā)人員能夠?qū)W⒆约旱念I(lǐng)域,但是同時(shí)也帶來一些缺點(diǎn):

1.知識(shí)隔離:過于精細(xì)的分工可能導(dǎo)致不同角色之間的知識(shí)隔離,缺乏全局視野。這可能使得團(tuán)隊(duì)難以應(yīng)對(duì)快速變化的需求和市場(chǎng)環(huán)境。

2.溝通成本:不同角色之間的溝通可能會(huì)增加,需要花費(fèi)更多時(shí)間解釋和協(xié)調(diào)工作,這可能增加溝通成本。

3.資源浪費(fèi):用造飛機(jī)的人員分工和流程管理來造一輛自行車,對(duì)于一些輕量級(jí)的需求也要調(diào)動(dòng)前后端資源和走一遍全部開發(fā)流程,高射炮打蚊子,殺雞用牛刀。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖2: 低代碼平臺(tái)和傳統(tǒng)開發(fā)的比較

2.2 低代碼平臺(tái)調(diào)研分析

在魯班項(xiàng)目啟動(dòng)之初,我們調(diào)研了市場(chǎng)上的低代碼和零代碼平臺(tái),這些平臺(tái)對(duì)魯班的設(shè)計(jì)和研發(fā)提供了參考和借鑒。

企業(yè)

日期

產(chǎn)品

定位

功能特性

騰訊

2022年公測(cè)

微搭

小程序、H5 應(yīng)用、Web 應(yīng)用等

1.面向前端,拖拽式開發(fā)
2.部署騰訊云
3.多端支持

阿里

2019年發(fā)布

宜搭

低代碼企業(yè)級(jí)應(yīng)用搭建SAAS平臺(tái)

1.可視化搭建應(yīng)用
2.根據(jù)業(yè)務(wù)靈活定制

3.集成釘釘快速應(yīng)用

ClickPass

2017年創(chuàng)立

ClickPaas

企業(yè)級(jí)低代碼開發(fā)平臺(tái)

1.開發(fā)速度快,項(xiàng)目周期短
2.高性能、高擴(kuò)展、高并發(fā)

明道云

2013年成立

明道云

零代碼,銷售、運(yùn)營、人事、采購等核心業(yè)務(wù)應(yīng)用

1.云原生架構(gòu)
2.分布式架構(gòu)支持
3.支持私有部署、
4.簡(jiǎn)單易學(xué),無需編碼

碼匠

2018年成立

碼匠

面向開發(fā)者的低代碼平臺(tái),可以幫助企業(yè)快速構(gòu)建和部署應(yīng)用程序

1.模型驅(qū)動(dòng)開發(fā)模式
2.多種數(shù)據(jù)源支持
3.模型自動(dòng)生成頁面

百度

暫無

愛速搭

更靈活、更強(qiáng)大、更智能應(yīng)用可視化設(shè)計(jì)與發(fā)布平臺(tái)

1.零代碼搭建
2.模型引擎,意見應(yīng)用生成

攜程

2023年3月

PGClowcode

客戶端(App、小程序、網(wǎng)頁)和運(yùn)營后臺(tái)

1.拖拽生成頁面
2.自動(dòng)化部署運(yùn)維
3.安全性
4自助化組件開發(fā)

表1:低代碼零代碼產(chǎn)品調(diào)研

考慮到我們的實(shí)際應(yīng)用場(chǎng)景,我們面對(duì)C端的場(chǎng)景,要求功能復(fù)雜、交互友好、流量大、性能要求高的場(chǎng)景,肯定還是優(yōu)先選擇傳統(tǒng)的開發(fā)模式。只有面對(duì)B端的場(chǎng)景和一些內(nèi)部系統(tǒng),不要求界面精美,可用就行,能夠開發(fā)簡(jiǎn)單,快速上線。所以魯班低代碼平臺(tái)的定位就是面對(duì)B端場(chǎng)景和一些內(nèi)部系統(tǒng)。

這些內(nèi)部系統(tǒng)需要支持58的OA賬號(hào)登錄鑒權(quán)、需要能夠私有化部署在58私有云、需要能夠支持58的通用底層框架訪問(例如58的內(nèi)部RPC系統(tǒng)SCF服務(wù)、分布式消息WMB、存儲(chǔ)系統(tǒng)WOS等)、需要能夠通過內(nèi)網(wǎng)訪問58的內(nèi)部其他系統(tǒng)(例如經(jīng)紀(jì)人賬號(hào)、商業(yè)訂單等)。這些訴求就決定了我們不可能采用外部的低代碼平臺(tái),只能自研。

2.3 魯班的目標(biāo)

魯班全棧式低代碼開發(fā)平臺(tái),可以幫助后端開發(fā)人員做一些輕量級(jí)前端的工作,幫助前端開發(fā)人員做一些輕量級(jí)后端的工作,人人都可以成為全棧開發(fā)工程師。降低技術(shù)門檻,減少溝通成本,提高開發(fā)效率,快速迭代和修改,易于集成和擴(kuò)展。

3

魯班的功能介紹

3.1 拖轉(zhuǎn)生成頁面

魯班可以通過可視化拖拽的方式,讓開發(fā)人員能夠快速創(chuàng)建和布局應(yīng)用界面。以下是魯班拖拽生成頁面功能的詳細(xì)介紹:

1.直觀的可視化拖拽界面:低代碼開發(fā)平臺(tái)提供了一個(gè)直觀的可視化拖拽界面,開發(fā)人員可以通過簡(jiǎn)單的拖拽操作來創(chuàng)建和布局應(yīng)用界面。這種方式使得界面設(shè)計(jì)更加快速和靈活,無需編寫繁瑣的代碼。

2.豐富的組件庫:低代碼開發(fā)平臺(tái)提供了豐富的組件庫,包括文本框、按鈕、表單、圖片、圖表等常見元素,以及各種業(yè)務(wù)單據(jù)和業(yè)務(wù)邏輯組件。這些組件可以滿足不同應(yīng)用程序所需的通用核心功能,因此可以重復(fù)使用,以更快地開發(fā)不同的解決方案。

3.可重用性:低代碼開發(fā)平臺(tái)擁有完善的功能模塊體系,不同模塊可以滿足不同應(yīng)用程序所需的通用核心功能,因此可以重復(fù)使用,以更快地開發(fā)不同的解決方案。

4.可擴(kuò)展性:為了實(shí)現(xiàn)各個(gè)信息系統(tǒng)的整合,方便統(tǒng)一管理和用戶訪問,低代碼開發(fā)平臺(tái)提供了豐富的集成接口,支持。

5.多種集成方式:可以很方便地與第三方系統(tǒng)集成,包括市場(chǎng)上多個(gè)領(lǐng)域的主流產(chǎn)品,都可以實(shí)現(xiàn)無縫對(duì)接。跨平臺(tái)可訪問性:低代碼開發(fā)平臺(tái)的全生命周期管理使得應(yīng)用程序可以輕松地實(shí)現(xiàn)跨平臺(tái)訪問,包括PC端、移動(dòng)端、平板電腦等設(shè)備。

總的來說,魯班拖拽生成頁面功能通過直觀的可視化拖拽界面和豐富的組件庫,使得開發(fā)人員能夠快速創(chuàng)建和布局應(yīng)用界面,提高了開發(fā)效率和質(zhì)量。同時(shí),該功能還具有可重用性、可擴(kuò)展性和跨平臺(tái)可訪問性等特點(diǎn),能夠滿足不同應(yīng)用程序的開發(fā)需求。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖3:魯班頁面設(shè)計(jì)器

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖4:多端支持

3.2 數(shù)據(jù)可視化

魯班的數(shù)據(jù)可視化功能是其重要的組成部分,它可以幫助開發(fā)人員快速、直觀地展示數(shù)據(jù),提供更好的決策支持。以下是對(duì)魯班低代碼平臺(tái)數(shù)據(jù)可視化功能的介紹:

1.數(shù)據(jù)驅(qū)動(dòng)的可視化設(shè)計(jì):低代碼平臺(tái)的數(shù)據(jù)可視化功能通常采用數(shù)據(jù)驅(qū)動(dòng)的方式進(jìn)行設(shè)計(jì),用戶可以通過簡(jiǎn)單的拖拽和配置操作,將數(shù)據(jù)源與可視化組件進(jìn)行綁定,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)展示。

2.豐富的可視化組件:低代碼平臺(tái)提供了豐富的可視化組件,如折線圖、柱狀圖、餅圖、地圖等,用戶可以根據(jù)需要選擇合適的組件進(jìn)行數(shù)據(jù)展示。同時(shí),這些組件通常支持自定義樣式和交互行為,以滿足不同場(chǎng)景下的需求。

3.數(shù)據(jù)實(shí)時(shí)更新:低代碼平臺(tái)的數(shù)據(jù)可視化功能支持?jǐn)?shù)據(jù)實(shí)時(shí)更新,當(dāng)數(shù)據(jù)源發(fā)生變化時(shí),可視化組件會(huì)自動(dòng)更新展示內(nèi)容,無需人工干預(yù)。這使得用戶可以及時(shí)了解數(shù)據(jù)變化,做出相應(yīng)決策。

4.數(shù)據(jù)交互與聯(lián)動(dòng):低代碼平臺(tái)的數(shù)據(jù)可視化功能還支持?jǐn)?shù)據(jù)交互與聯(lián)動(dòng),用戶可以通過點(diǎn)擊、滑動(dòng)等操作,對(duì)數(shù)據(jù)進(jìn)行篩選、排序等操作,實(shí)現(xiàn)數(shù)據(jù)的個(gè)性化展示。同時(shí),不同組件之間也可以實(shí)現(xiàn)聯(lián)動(dòng)效果,提高用戶體驗(yàn)。

總之,魯班平臺(tái)的數(shù)據(jù)可視化功能為用戶提供了直觀、高效的數(shù)據(jù)展示方式,幫助用戶更好地理解和分析數(shù)據(jù),為決策提供有力支持。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖5:數(shù)據(jù)源與可視化組件綁定

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖6:豐富的可視化組件

3.3 快速生成接口

魯班支持根據(jù)一張表生成CRUD一組http接口,同時(shí)能支持將現(xiàn)有的SCF接口(58自研RPC框架)導(dǎo)入并轉(zhuǎn)換成http接口的能力。生成的接口支持直接訪問和在頁面綁定數(shù)據(jù)源展示使用兩種方式。

魯班生成的接口,可以直接作為后臺(tái)http接口對(duì)外提供接口服務(wù),也可以作為頁面數(shù)據(jù)源方式與頁面組件進(jìn)行綁定。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖7:根據(jù)數(shù)據(jù)庫表生成http接口

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖8:SCF接口導(dǎo)入生成http接口

3.4 角色與權(quán)限

魯班的用戶分為開發(fā)用戶和應(yīng)用使用用戶兩套用戶體系。

同樣角色和權(quán)限也分為開發(fā)用戶角色和權(quán)限、應(yīng)用使用用戶角色及權(quán)限。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖9: 開發(fā)用戶及權(quán)限

3.5 擴(kuò)展性支持

低代碼平臺(tái)通過拖拉拽的方式生成頁面,通過sql方式或者接口導(dǎo)入方式生成接口,這種方式方便快捷,但是也有缺點(diǎn),就是靈活性不足。比如接口返回日期數(shù)據(jù)是時(shí)間戳,但是頁面想展示成日期格式?;蛘呤窃趯?dǎo)入的接口調(diào)用之后,對(duì)出入?yún)?shù)進(jìn)行加工。

為了解決這個(gè)問題,魯班支持?jǐn)U展代碼方式對(duì)現(xiàn)有功能進(jìn)行擴(kuò)展,同時(shí)能夠支持前端擴(kuò)展代碼(js代碼)對(duì)頁面數(shù)據(jù)進(jìn)行擴(kuò)展和后端擴(kuò)展代碼java方式對(duì)接口調(diào)用做before()和after()的執(zhí)行。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖10: 前端擴(kuò)展代碼

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖11: 后端擴(kuò)展代碼

對(duì)于后端擴(kuò)展代碼,為了開發(fā)方便及開發(fā)習(xí)慣,支持代碼下載到本地進(jìn)行IDEA進(jìn)行編輯,并支持將運(yùn)行時(shí)數(shù)據(jù)調(diào)用本地代碼進(jìn)行本地調(diào)試。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖12: 本地debug模式

4

魯班的設(shè)計(jì)與實(shí)現(xiàn)

4.1 整體架構(gòu)設(shè)計(jì)

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖13: 魯班整體架構(gòu)圖

魯班整體上分為開發(fā)環(huán)境和運(yùn)行環(huán)境:開發(fā)環(huán)境是供開發(fā)人員使用的系統(tǒng),提供頁面、接口開發(fā)、數(shù)據(jù)源配置、打包部署上線等功能。運(yùn)行環(huán)境是應(yīng)用的運(yùn)行環(huán)境,是一個(gè)web系統(tǒng),對(duì)外提供http接口,每個(gè)應(yīng)用一個(gè)獨(dú)立的運(yùn)行環(huán)境,互相隔離。

整體上分為4層:基礎(chǔ)設(shè)施層、中間件層、引擎層、業(yè)務(wù)中臺(tái)層,其中前端引擎和后端引擎是核心。

同時(shí)提供了openApi功能可以對(duì)外提供服務(wù),和內(nèi)置了一些58內(nèi)部系統(tǒng)的登錄、訪問、鑒權(quán)等能力。

4.2 元數(shù)據(jù)設(shè)計(jì)

1.前端頁面設(shè)計(jì):

頁面設(shè)計(jì)的內(nèi)容以元數(shù)據(jù)DSL格式存儲(chǔ)在mongodb數(shù)據(jù)庫中,在運(yùn)行時(shí)動(dòng)態(tài)加載,并通過頁面解析器解析展示。

魯班的前端頁面代碼是把頁面信息編輯成JSON Schema,平臺(tái)生成JSON Schema是在formily/json-schema規(guī)范的基礎(chǔ)上擴(kuò)展了部分字段,以來兼容非form組件的渲染。其中大部分字段可以在formily的文檔中找到屬性描述。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖14: 前端頁面元數(shù)據(jù)設(shè)計(jì)

2.接口出入?yún)⒛0嬖O(shè)計(jì):

魯班目前支持14種接口類型,新增、修改、單條刪除、批量刪除、分頁列表、無分頁列表、下拉框列表、數(shù)量查詢、批量id查詢、詳情、全部導(dǎo)出、批量導(dǎo)出、自定義導(dǎo)出、自定義類型。這些接口類型主要是定義了出入?yún)⒛0?,供頁面或者直接使用。這些接口出入?yún)⒌亩x,也是用JSON Schema方式存儲(chǔ)下來作為元數(shù)據(jù)使用。

使用的場(chǎng)景有:接口出入?yún)⒄故?、格式校?yàn)、數(shù)據(jù)轉(zhuǎn)換等。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖15: 接口出入?yún)⒛0嬖獢?shù)據(jù)設(shè)計(jì)

4.3 前端引擎

前端引擎主要有頁面設(shè)計(jì)器、圖標(biāo)設(shè)計(jì)器、js擴(kuò)展代碼等組成。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖16: DSL解析器

首先設(shè)計(jì)器會(huì)加載所需組件庫、組件屬性設(shè)置器等物料,接著開發(fā)人員根據(jù)產(chǎn)品需求在畫布中進(jìn)行布局設(shè)置、組件 CRUD 操作、API屬性配置和邏輯編排等操作,這些操作會(huì)不斷生成操作節(jié)點(diǎn)模型,然后設(shè)計(jì)器將操作節(jié)點(diǎn)模型轉(zhuǎn)化成頁面描述即JSON chema,此為設(shè)計(jì)器的產(chǎn)物。最后經(jīng)過解析器進(jìn)行生命周期、事件流、數(shù)據(jù)綁定等邏輯處理并渲染成真實(shí)頁面。

組件與數(shù)據(jù)層的綁定:組件需要被魯班特定方法包裹,該方法判斷組件是否為受控組件,如果是則將組件的value、onchange方法與數(shù)據(jù)字段模型Field綁定,從而實(shí)現(xiàn)第三方組件數(shù)據(jù)與頁面數(shù)據(jù)雙綁的能力。除組件數(shù)據(jù)外,組件的描述、校驗(yàn)狀態(tài)、校驗(yàn)方法等均可綁定。整個(gè)方案不會(huì)破壞存量組件庫,改造動(dòng)作小,且不影響其在傳統(tǒng)開發(fā)項(xiàng)目中的正常使用。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖17:組件與數(shù)據(jù)層綁定

4.4 多租戶、多環(huán)境與隔離性

4.4.1 多租戶

魯班低代碼開發(fā)平臺(tái)是一種典型的Saas模式,每個(gè)應(yīng)用都是獨(dú)立一套云集環(huán)境,集群間重啟、版本部署、元數(shù)據(jù)、網(wǎng)絡(luò)鏈路等皆互不影響。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖18:多租戶

4.4.2 多環(huán)境

魯班低代碼平臺(tái)分為開發(fā)環(huán)境和運(yùn)行環(huán)境。

開發(fā)環(huán)境是開發(fā)人員開發(fā)接口、設(shè)計(jì)頁面的開發(fā)平臺(tái),用戶開發(fā)設(shè)計(jì)的頁面、數(shù)據(jù)庫元數(shù)據(jù)、接口元數(shù)據(jù)、變量、擴(kuò)展代碼等都存儲(chǔ)在開發(fā)環(huán)境。

運(yùn)行環(huán)境是系統(tǒng)實(shí)際運(yùn)行的平臺(tái),分為開發(fā)環(huán)境和正式環(huán)境,部署在K8s集群,以及58集團(tuán)私有云環(huán)境。用戶開發(fā)完的應(yīng)用,可以不用上線,直接在開發(fā)環(huán)境云行及預(yù)覽。

待開發(fā)完成在開發(fā)環(huán)境測(cè)試聯(lián)調(diào)通過之后,可以在魯班一鍵打包并部署到正式環(huán)境,同時(shí)根據(jù)部署包支持回滾到某個(gè)指定版本。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖19: 多環(huán)境支持

多環(huán)境環(huán)境變量:

魯班運(yùn)行環(huán)境分為開發(fā)環(huán)境和正式環(huán)境,開發(fā)環(huán)境是根據(jù)用戶開發(fā)的內(nèi)容實(shí)時(shí)顯示,正式環(huán)境需要打包上線之后才會(huì)更新內(nèi)容。在日常的開發(fā)過程中,有些配置信息需要開發(fā)環(huán)境和正式環(huán)境不同,比如使用的數(shù)據(jù)庫配置,開發(fā)環(huán)境用測(cè)試庫,正式環(huán)境用線上庫;調(diào)用的接口開發(fā)時(shí)用開發(fā)環(huán)境的接口,上線之后用正式環(huán)境的接口。在使用的變量的環(huán)節(jié)用luban.${var_name}表示,在運(yùn)行時(shí)會(huì)從變量定義中進(jìn)行替換。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖20: 多環(huán)境環(huán)境變量

4.4.3 隔離性

設(shè)計(jì)時(shí)環(huán)境與運(yùn)行時(shí)環(huán)境相隔離,設(shè)計(jì)時(shí)開發(fā)存儲(chǔ)于元數(shù)據(jù),運(yùn)行時(shí)只依賴于元數(shù)據(jù)并提供緩存功能。即使運(yùn)行時(shí)出現(xiàn)問題,不影響運(yùn)行時(shí)的原型。

運(yùn)行時(shí)的開發(fā)環(huán)境和正式環(huán)境相隔離,開發(fā)環(huán)境依賴開發(fā)環(huán)境的元數(shù)據(jù),隨著用戶的開發(fā)實(shí)時(shí)變化,正式環(huán)境的元數(shù)據(jù)只有打包部署之后才會(huì)更新,開發(fā)環(huán)境的變動(dòng)不會(huì)影響運(yùn)行環(huán)境,保證了運(yùn)行環(huán)境的穩(wěn)定性。

魯班不同的應(yīng)用互相隔離,運(yùn)行在各自不同的docker容器中,互相不會(huì)影響。

4.5 版本管理

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖21: 版本管理

魯班的node運(yùn)行環(huán)境、java運(yùn)行環(huán)境都是容器(docker鏡像)。這些運(yùn)行環(huán)境的容器都是通用的,可以運(yùn)行任何一個(gè)應(yīng)用。

魯班低代碼平臺(tái)將頁面元數(shù)據(jù)、接口元數(shù)據(jù)、配置信息、擴(kuò)展代碼等打成一個(gè)運(yùn)行時(shí)版本包。

在部署環(huán)節(jié)只要將某個(gè)版本的運(yùn)行環(huán)境部署,并將這些應(yīng)用元數(shù)據(jù)信息加載,加載A應(yīng)用的元數(shù)據(jù)信息就是A應(yīng)用的運(yùn)行環(huán)境,加載B應(yīng)用的運(yùn)行信息就是B應(yīng)用的運(yùn)行環(huán)境。

這種設(shè)計(jì)實(shí)現(xiàn)了應(yīng)用和運(yùn)行環(huán)境的隔離,可以實(shí)現(xiàn)同一個(gè)應(yīng)用的部署升級(jí)、回滾、灰度等操作。

4.6 路由規(guī)則

魯班的運(yùn)行環(huán)境和應(yīng)用是相互隔離的,魯班通過統(tǒng)一的網(wǎng)關(guān)來進(jìn)行路由分發(fā)。路由規(guī)則有三層,分別是:環(huán)境、組織、應(yīng)用。魯班的接口調(diào)用規(guī)則如下:luban.58corp.com/{env}/{org}/{app}/path。其中env表示環(huán)境信息:開發(fā)環(huán)境offline or 線上環(huán)境online。org表示組織代碼,app表示應(yīng)用代碼。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖22: 路由規(guī)則

4.7 擴(kuò)展性設(shè)計(jì)

4.7.1 接口參數(shù)映射

有時(shí)候,原始導(dǎo)入的接口參數(shù),并不滿足用戶希望提供的接口參數(shù)訴求,魯班支持對(duì)接口的出入?yún)⑦M(jìn)行映射擴(kuò)展。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖23: 出入?yún)⒂成?/span>

4.7.2 接口擴(kuò)展代碼

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖24: 接口擴(kuò)展代碼

魯班支持對(duì)每個(gè)接口做切面擴(kuò)展,在接口的調(diào)用之前執(zhí)行before方法和執(zhí)行之后再執(zhí)行after方法。

魯班對(duì)于接口的擴(kuò)展代碼,以元數(shù)據(jù)的方式存儲(chǔ)在代碼倉庫中,在運(yùn)行時(shí)動(dòng)態(tài)加載動(dòng)態(tài)編譯方式加載到運(yùn)行環(huán)境中,當(dāng)代碼有更新時(shí),開發(fā)環(huán)境動(dòng)態(tài)拉取最新代碼重新加載編譯,線上環(huán)境為了系統(tǒng)的穩(wěn)定性,只有在用戶點(diǎn)擊打包上線之后才會(huì)更新代碼。

因?yàn)轫撁孀詭ч_發(fā)工具不如本地IDEA好用,魯班平臺(tái)支持將擴(kuò)展代碼下載到本地進(jìn)行編輯調(diào)試,并可以在本地啟動(dòng)一個(gè)web系統(tǒng),在運(yùn)行時(shí)通過本地debug開關(guān)和ip port的方式,將before/after的接口請(qǐng)求轉(zhuǎn)發(fā)到本地進(jìn)行調(diào)試。

調(diào)試成功的接口,可以通過push方式更新到代碼倉庫。

luban-SDK提供了魯班低代碼平臺(tái)常用的一些能力,比如獲取應(yīng)用信息、用戶登錄信息、調(diào)用平臺(tái)其他接口功能等。

5

接入案例分享

5.1 安心交易

為推進(jìn)二手房交易規(guī)范化,幫助更多用戶實(shí)現(xiàn)安心交易,58同城、安居客攜手合和致遠(yuǎn)、邦安家,為全國用戶提供“安心交易保障”,目前,“安心交易保障”已經(jīng)在武漢、太原、長沙、西安、杭州 、南京、鄭州、珠海青島等10幾個(gè)城市的糯家、邦安家、安個(gè)家等合作門店推行。

安心交易主要用到了魯班根據(jù)數(shù)據(jù)庫表自動(dòng)生成CRUD接口和操作頁面,開發(fā)了53個(gè)接口,14個(gè)頁面。降低了開發(fā)難度,提高了開發(fā)效率,減少了人員投入,相比傳統(tǒng)開發(fā)方式,人力投入從2人減少到1.5人,開發(fā)周期從24天減少到17天。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖25: 安心交易

5.2 房產(chǎn)SKU管理后臺(tái)

房產(chǎn)SKU管理后臺(tái)是為開發(fā)、測(cè)試、運(yùn)營人員提供的一個(gè)查詢后臺(tái),提供了SKU信息、掛靠關(guān)系、操作日志能的查詢功能。這些能力是通過后臺(tái)服務(wù)提供接口(SCF服務(wù),58內(nèi)部RPC服務(wù)),魯班通過接口設(shè)計(jì)功能將這些接口轉(zhuǎn)換成http接口,并通過拖拉拽方式設(shè)計(jì)查詢或者操作頁面進(jìn)行數(shù)據(jù)綁定,從而實(shí)現(xiàn)了對(duì)后臺(tái)數(shù)據(jù)的訪問。

主要用到了魯班后臺(tái)接口導(dǎo)入和頁面拖拉拽編輯功能,所有功能都完全由SKU后臺(tái)開發(fā)人員負(fù)責(zé),降低了開發(fā)難度,減少了跨部門協(xié)作和業(yè)務(wù)溝通成本。人員投入由傳統(tǒng)開發(fā)方式的2人將低到1人,開發(fā)周期從13天減少為5天。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖26: 房產(chǎn)sku后臺(tái)

5.3 房產(chǎn)門戶網(wǎng)站

房產(chǎn)門戶網(wǎng)站是58房產(chǎn)內(nèi)部系統(tǒng),將所有房產(chǎn)業(yè)務(wù)群常用的網(wǎng)站進(jìn)行分類整理,統(tǒng)一門戶。房產(chǎn)的產(chǎn)品、開發(fā)、運(yùn)營、測(cè)試可以一站直達(dá)任意網(wǎng)站。

58房產(chǎn)門戶網(wǎng)站的開發(fā)模式是為前端開發(fā)人員提供后端開發(fā)的能力,前端開發(fā)人員利用魯班配置連接數(shù)據(jù)庫,并對(duì)數(shù)據(jù)庫表提供CRUD的功能,對(duì)外提供訪問接口,這些數(shù)據(jù)庫表存儲(chǔ)了分類網(wǎng)站的類別、網(wǎng)站url地址等信息。

因?yàn)檎麄€(gè)開發(fā)都只有前端同學(xué)參與,人員投入由傳統(tǒng)開發(fā)方式的2人降低到1.5人,開發(fā)周期從21天減少為15天。

魯班-58房產(chǎn)低代碼平臺(tái)設(shè)計(jì)與實(shí)踐

圖27:房產(chǎn)門戶網(wǎng)站

6

總結(jié)及展望

6.1 總結(jié)

1.目前市場(chǎng)上的常見的低代碼平臺(tái),例如阿里宜搭、騰訊微搭、簡(jiǎn)道云、輕流等,基本上是偏前端的使用場(chǎng)景,注重頁面設(shè)計(jì),對(duì)于后端支持一般比較弱,擴(kuò)展性不足。魯班低代碼平臺(tái)是前后端結(jié)合的低代碼平臺(tái),后端功能甚至要重于前端設(shè)計(jì),主要體現(xiàn)在快速接口搭建、后端擴(kuò)展代碼的支持等方面。

2.魯班低代碼平臺(tái)對(duì)58的基礎(chǔ)能力的支持,比如針對(duì)58內(nèi)部RPC框架SCF的接口一鍵導(dǎo)入、58內(nèi)部OA賬號(hào)登錄等,提升了內(nèi)部用戶使用效率。同時(shí)依托58提供的私有云,部署運(yùn)行環(huán)境時(shí)即可以部署原生k8s,也可以部署在58私有云平臺(tái),兼顧了靈活性和穩(wěn)定性的要求。

3.魯班低代碼平臺(tái)的高擴(kuò)展性,尤其是后端擴(kuò)展代碼 SDK結(jié)合的能力,甚至可以當(dāng)作一個(gè)獨(dú)立的web開發(fā)框架使用,開發(fā)便捷、部署靈活。

6.2 未來規(guī)劃

1.流程引擎,常用的業(yè)務(wù)場(chǎng)景有工作流、審批流等。

2.內(nèi)嵌的模式,魯班開發(fā)的頁面或者接口能夠內(nèi)嵌到其他系統(tǒng)使用,其他系統(tǒng)的接口或者頁面能夠內(nèi)嵌到魯班應(yīng)用中使用,取長補(bǔ)短,互相補(bǔ)充。這種方式目前可以部分支持,未來希望能夠做到無縫連接,更便捷。

3.交互設(shè)計(jì)優(yōu)化,在實(shí)際使用中我們發(fā)現(xiàn),在一些開發(fā)場(chǎng)景中,對(duì)開發(fā)者的使用引導(dǎo)還有欠缺,初次使用有一定的學(xué)習(xí)成本,未來希望能夠做到不需要閱讀文檔,拿來就會(huì)用。

4.房產(chǎn)通用服務(wù)內(nèi)置模塊化, 比如房源庫基礎(chǔ)服務(wù),樓盤字典基礎(chǔ)服務(wù)等,用戶用到這些服務(wù)不需要自己再去申請(qǐng),通過魯班內(nèi)置SDK就可以訪問。

5.AI賦能(需求抽象、代碼生成、數(shù)據(jù)分析、智能輔助等)。

參考文獻(xiàn)

例如:

[1] 百度低代碼平臺(tái):https://mp.weixin.qq.com/s/4tyZnBCwJkzEWn-zfWFqIA

[2] 低代碼vs.傳統(tǒng)開發(fā)一個(gè)全面的比較:https://mp.weixin.qq.com/s/riu_itoEipSdArMjVKuyWw

[3] 攜程后臺(tái)低代碼平臺(tái)的探究與實(shí)踐:https://mp.weixin.qq.com/s/_atcGO_J5C2lx13gZCrp6g

[4] 如何讓低代碼平臺(tái)發(fā)揮出真正的價(jià)值:https://mp.weixin.qq.com/s/5pRaajrP8oeb9w6P6viCGw

[5] 騰訊微搭:https://weda.cloud.tencent.com/learn

[6] 阿里宜搭:https://yida-pro.ding.zj.gov.cn/

作者簡(jiǎn)介:

李春雷:58安居客-房產(chǎn)技術(shù)部后端架構(gòu)師。致力于高并發(fā)、大數(shù)據(jù)、高性能的后端服務(wù)研發(fā);曾成功實(shí)現(xiàn)了58、趕集、安居客房產(chǎn)三網(wǎng)業(yè)務(wù)融合與數(shù)據(jù)融合,目前專注于云原生與低代碼方向的研發(fā)工作。

馬震:58安居客-房產(chǎn)技術(shù)部后端架構(gòu)師。致力于設(shè)計(jì)高效、穩(wěn)定、可擴(kuò)展的系統(tǒng)架構(gòu),具備深厚的技術(shù)功底和豐富的實(shí)踐經(jīng)驗(yàn);目前負(fù)責(zé)房產(chǎn)核心基礎(chǔ)服務(wù)、AI智能對(duì)話、低代碼平臺(tái)等方向的架構(gòu)設(shè)計(jì)與研發(fā)工作。

周軍:58安居客-房產(chǎn)技術(shù)部后端架構(gòu)師。曾負(fù)責(zé)58房產(chǎn)詳情頁微服務(wù)化、房源搜索、房產(chǎn)開放平臺(tái)等;目前負(fù)責(zé)房產(chǎn)核心基礎(chǔ)服務(wù)、低代碼平臺(tái)等方向的架構(gòu)設(shè)計(jì)與研發(fā)工作。

來源-微信公眾號(hào):58技術(shù)

出處:https://mp.weixin.qq.com/s/DAJhQjGatYASZfvV0lA7ig

聯(lián)系我們
聯(lián)系我們
在線咨詢
分享本頁
返回頂部