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