低代碼開(kāi)發(fā)平臺(tái)核心組件——元數(shù)據(jù)管理(低代碼云開(kāi)發(fā))
低代碼開(kāi)發(fā)平臺(tái)最薄弱的環(huán)節(jié)應(yīng)該就是業(yè)務(wù)對(duì)象的建模。很多低代碼平臺(tái)用頁(yè)面代替業(yè)務(wù)對(duì)象建模,頁(yè)面就是業(yè)務(wù)對(duì)象。這樣做的最大好處就是上手比較容易,直接拖拽一個(gè)頁(yè)面就可以運(yùn)行。但是對(duì)應(yīng)復(fù)雜的業(yè)務(wù)邏輯往往力不從心,很多低代碼平臺(tái)在頁(yè)面上拓展了主子頁(yè)面的概念、頁(yè)面間數(shù)據(jù)引用的概念等等,都是為了提升平臺(tái)應(yīng)對(duì)復(fù)雜業(yè)務(wù)的能力,但是并沒(méi)有從根本上解決問(wèn)題。
樂(lè)扣低代碼平臺(tái)通過(guò)元數(shù)據(jù)來(lái)描述業(yè)務(wù)對(duì)象模型,并從研發(fā)人員的視角將業(yè)務(wù)對(duì)象模型和數(shù)據(jù)的持久化、外部資源的調(diào)用集合起來(lái)。元數(shù)據(jù)管理是前面在樂(lè)扣低代研發(fā)平臺(tái)研發(fā)思路中闡述了低代碼平臺(tái)的核心組件之一, 元數(shù)據(jù)管理中包括以下四種資源。
關(guān)系數(shù)據(jù)庫(kù)
關(guān)系數(shù)據(jù)庫(kù)是我們?cè)谛畔⒒到y(tǒng)中使用的最多的數(shù)據(jù)持久化方案,關(guān)系數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)可以和業(yè)務(wù)對(duì)象模型對(duì)應(yīng)。元數(shù)據(jù)在低代碼平臺(tái)中的著用就像ORM(比如:Hibernate、Mybatis等等)在傳統(tǒng)開(kāi)發(fā)中的著用。
低代碼平臺(tái)中關(guān)系數(shù)據(jù)庫(kù)元數(shù)據(jù)管理需要具備以下特性和能力:
- 反向工程能力,能夠從現(xiàn)有的數(shù)據(jù)庫(kù)中自動(dòng)生成元數(shù)據(jù)。
- 重構(gòu)數(shù)據(jù)庫(kù)的能力,在修改元數(shù)據(jù)后能夠重構(gòu)數(shù)據(jù)庫(kù)中的表結(jié)構(gòu),使得元數(shù)據(jù)和數(shù)據(jù)庫(kù)表結(jié)構(gòu)一致。
- 提供基于元數(shù)據(jù)的數(shù)據(jù)增刪改查能力,提供GraphQL或者類(lèi)似的接口。
- 和傳統(tǒng)的設(shè)計(jì)工具對(duì)接的能力,比如導(dǎo)入PowerDesigner設(shè)計(jì)的數(shù)據(jù)模型。
非關(guān)系數(shù)據(jù)庫(kù)
非關(guān)系數(shù)據(jù)庫(kù),比如文檔數(shù)據(jù)庫(kù)mongoDB、ElasticSearch,和低代碼平臺(tái)中的自定義表單非常般配可以說(shuō)是天生一對(duì)。再?gòu)?fù)雜的頁(yè)面表單數(shù)據(jù)都可以用json或者xml作為一個(gè)文檔保存到數(shù)據(jù)庫(kù)中。但是在后續(xù)的查詢(xún)、分析和統(tǒng)計(jì)中需要將相關(guān)的屬性抽取出來(lái),所以非關(guān)系數(shù)據(jù)庫(kù)的元數(shù)據(jù)就是為了解決這個(gè)工作的。
非關(guān)系數(shù)據(jù)庫(kù)元數(shù)據(jù)提供以下特性和能力:
- 描述文檔中關(guān)鍵字段對(duì)應(yīng)的屬性或者路徑。
- 配合數(shù)據(jù)轉(zhuǎn)換工具,將非關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)轉(zhuǎn)換到關(guān)系數(shù)據(jù)庫(kù)中。
消息隊(duì)列與外部服務(wù)
現(xiàn)在信息化系統(tǒng)越來(lái)越發(fā)展,并不是所有的業(yè)務(wù)操作都是簡(jiǎn)單的數(shù)據(jù)持久化,有些操作需要將數(shù)據(jù)推送改消息隊(duì)列或者調(diào)用其他外部服務(wù)。
消息隊(duì)列和外部服務(wù)的元數(shù)據(jù)是為了給前端自定義表單提供統(tǒng)一的訪問(wèn)接口,以提高低代碼平臺(tái)的研發(fā)能力。