試用西門子Mendix低代碼開(kāi)發(fā)平臺(tái)-低代碼還是無(wú)代碼?(低代碼 西門子)
今天試用了下Mendix低代碼開(kāi)發(fā)平臺(tái)。
西門子低代碼平臺(tái)(Siemens Low Code Platform)提供所需的一切資源,助您大規(guī)模創(chuàng)建,集成,部署,管理和迭代開(kāi)發(fā)現(xiàn)代業(yè)務(wù)應(yīng)用程序。 掌握可視化應(yīng)用開(kāi)發(fā)技術(shù),縮短上市時(shí)間、釋放業(yè)務(wù)人員的能力,提高業(yè)務(wù)水平 IT 之間的協(xié)作、 打造用戶喜愛(ài)的移動(dòng)應(yīng)用,實(shí)現(xiàn)離線優(yōu)先的豐富交互。西門子低代碼平臺(tái)是面向所有人群的應(yīng)用開(kāi)發(fā)平臺(tái),可以幫助企業(yè)更好地推動(dòng)業(yè)務(wù)發(fā)展。
該平臺(tái)已經(jīng)托管到騰訊云,地址如下:
https://apps.mendix.tencent-cloud.com/
感興趣的可以訪問(wèn)上面的鏈接,注冊(cè)騰訊云賬號(hào)好下載Studio客戶端進(jìn)行試用。
在這個(gè)我先總結(jié)下簡(jiǎn)單實(shí)用后的總結(jié)如下:
Mendix平臺(tái)整體初次使用感覺(jué)就類似多年前自己使用Visual Studio Donet IDE的感覺(jué)。整個(gè)平臺(tái)是面向開(kāi)發(fā)人員的,屬于低代碼開(kāi)發(fā)平臺(tái)類型。其中核心兩個(gè)特點(diǎn),其一是基于MDA模型驅(qū)動(dòng)的思想來(lái)進(jìn)行構(gòu)建,其二是通過(guò)Mrico FLow微流來(lái)實(shí)現(xiàn)的靈活業(yè)務(wù),事件,微服務(wù)等的編排能力。
這個(gè)實(shí)際我前面談低代碼開(kāi)發(fā)平臺(tái)談到的兩大核心能力完全類似。首先整個(gè)架構(gòu)應(yīng)該是基于模型驅(qū)動(dòng)的,有了模型才具備后續(xù)的擴(kuò)展性能力。其次對(duì)于軟件開(kāi)發(fā)里面的復(fù)雜業(yè)務(wù)規(guī)則和邏輯等編寫將其抽象為可視化的微服務(wù)編排能力,通過(guò)服務(wù)編排來(lái)實(shí)現(xiàn)快速的組合。
但是整個(gè)平臺(tái)試用下個(gè)人仍然不推薦,主要原因包括2點(diǎn)。
其一是國(guó)外的這類軟件實(shí)際對(duì)國(guó)內(nèi)應(yīng)用APP的一些使用場(chǎng)景和習(xí)慣了解的并不多,導(dǎo)致開(kāi)發(fā)出來(lái)的功能和當(dāng)前我們主流的應(yīng)用功能,界面布局呈現(xiàn)等都存在較大的差異。
其二是這個(gè)平臺(tái)已經(jīng)接近于面向開(kāi)發(fā)者的各類RAD IDE工具,類似.net Studio,更老的Dephi等完全具備這種低代碼平臺(tái)的能力,而且代碼完全可見(jiàn),更加容易使用。采用這類代代碼平臺(tái)對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)完全沒(méi)有必要。
快速開(kāi)發(fā),低代碼和無(wú)代碼的邊界問(wèn)題
在當(dāng)前低代碼開(kāi)發(fā)熱度不減的情況下,我希望將其分為三類。
其一類就是完全面向開(kāi)發(fā)人員的快速開(kāi)發(fā)平臺(tái),這里平臺(tái)重點(diǎn)是對(duì)常用的共性技術(shù)能力,組件進(jìn)行封裝,以方便開(kāi)發(fā)人員快速開(kāi)發(fā),而且開(kāi)發(fā)完成的內(nèi)容完全對(duì)開(kāi)發(fā)人員可見(jiàn),最終運(yùn)行也可以脫離低代碼平臺(tái)環(huán)境。典型的類似JEEcg這類開(kāi)源平臺(tái)。
其二就是類似Mendix,包括國(guó)內(nèi)的普元信息的EOS等,也是面向開(kāi)發(fā)人員,能夠支撐各種復(fù)雜業(yè)務(wù)場(chǎng)景,但是最終場(chǎng)景的支撐你會(huì)發(fā)現(xiàn)仍然需要代碼化或編寫腳本才能夠完成,而且這類平臺(tái)本身相對(duì)封閉。對(duì)開(kāi)發(fā)人員也有技能要求。
其三就是類似明道,簡(jiǎn)道,宜搭這種偏零代碼的開(kāi)發(fā)平臺(tái),不需要有太多的開(kāi)發(fā)經(jīng)驗(yàn),大量工作都可以通過(guò)配置化的方式完成。
而實(shí)際真正需要的低代碼開(kāi)發(fā)平臺(tái)不是類似Mendix將復(fù)雜業(yè)務(wù)規(guī)則等全部都去實(shí)現(xiàn),而是形成一種符合模型驅(qū)動(dòng) 微服務(wù)編排為核心思想的,基本功能零代碼 復(fù)雜規(guī)則自己寫代碼并暴露為API接口的一種組合模式。
簡(jiǎn)單的功能開(kāi)發(fā)
在這里我們以一個(gè)客戶基本信息維護(hù)的功能對(duì)Mendix進(jìn)行了試用。整個(gè)過(guò)程實(shí)際上差不多5分鐘就能夠發(fā)布完成該功能。具體步驟為:
1.創(chuàng)建一個(gè)空白項(xiàng)目
2.創(chuàng)建一個(gè)領(lǐng)域模型,實(shí)際核心即數(shù)據(jù)庫(kù)建模
3.創(chuàng)建一個(gè)頁(yè)面,將頁(yè)面管理到數(shù)據(jù)對(duì)象
4.選擇頁(yè)面自動(dòng)生成和排版
在創(chuàng)建完一個(gè)空白項(xiàng)目后,左邊會(huì)出現(xiàn)Project Explorer,從左邊也可以看到核心的對(duì)象包括了領(lǐng)域?qū)ο竽P?,Page頁(yè)面,MicroFLow微流
在這里創(chuàng)建一個(gè)對(duì)象模型,設(shè)計(jì)對(duì)象結(jié)構(gòu),和數(shù)據(jù)庫(kù)設(shè)計(jì)完全類似,也可以看到當(dāng)前主流的低代碼開(kāi)發(fā)工具中,對(duì)于對(duì)象建模和數(shù)據(jù)庫(kù)設(shè)計(jì)來(lái)說(shuō)一般都需要完全開(kāi)放出來(lái)。
數(shù)據(jù)庫(kù)設(shè)計(jì)本身支持單表設(shè)計(jì),也支持多表設(shè)計(jì)和表關(guān)系設(shè)計(jì)。
創(chuàng)建完成地表之間的關(guān)聯(lián)依賴關(guān)系會(huì)自動(dòng)應(yīng)用到后續(xù)的頁(yè)面功能創(chuàng)建中。
在對(duì)象模型創(chuàng)建完成后,可以開(kāi)始創(chuàng)建Page頁(yè)面,注意頁(yè)面這塊包括了列表頁(yè),F(xiàn)orm頁(yè),主從頁(yè)面,向?qū)ы?yè)面等各種頁(yè)面模板,可快速的基于頁(yè)面模板來(lái)創(chuàng)建頁(yè)面。
比如在這里選擇Grid頁(yè)面模板,進(jìn)入到頁(yè)面設(shè)計(jì)后。
雙擊頁(yè)面會(huì)出現(xiàn)一個(gè)對(duì)話框,在這里需要將頁(yè)面和數(shù)據(jù)對(duì)象進(jìn)行綁定操作。
在綁定完成后選擇自動(dòng)化生成頁(yè)面元素,這個(gè)時(shí)候會(huì)自動(dòng)進(jìn)行頁(yè)面元素的生成,一個(gè)簡(jiǎn)單的表單CRUD功能就全部完成。
這個(gè)時(shí)候可以點(diǎn)擊運(yùn)行按鈕進(jìn)行運(yùn)行,具體效果如下:
核心能力Mirco Flow的編排能力
對(duì)于Mendix前面我已經(jīng)談到,兩個(gè)核心能力。一個(gè)是領(lǐng)域?qū)ο蠼:湍P万?qū)動(dòng),一個(gè)是MicroFLow的微流可視化設(shè)計(jì)和編排。
在低代碼設(shè)計(jì)和開(kāi)發(fā)里面可以看到,如果僅僅是一個(gè)界面控件或按鈕出現(xiàn)一個(gè)簡(jiǎn)單事件,比如需要跳轉(zhuǎn)界面,彈出消息對(duì)話框,發(fā)送郵件等,這些相對(duì)來(lái)說(shuō)都容易實(shí)現(xiàn)。而真正的業(yè)務(wù)場(chǎng)景實(shí)現(xiàn)往往都是點(diǎn)擊一個(gè)按鈕觸發(fā)事件后,實(shí)現(xiàn)這個(gè)事件的方法里面往往需要調(diào)用多個(gè)操作步驟,里面還涉及到一些判斷邏輯處理。
要實(shí)現(xiàn)這個(gè)能力必須具備一定的可視化編排設(shè)計(jì)。
在前面我談低代碼平臺(tái)的文章里面也指出過(guò),微服務(wù)編排是低代碼平臺(tái)里面的一個(gè)關(guān)鍵能力,也是在中臺(tái)和服務(wù)化架構(gòu)里面,實(shí)現(xiàn)前端應(yīng)用快速開(kāi)發(fā)和底層服務(wù)共享能力之間協(xié)同的一個(gè)關(guān)鍵能力。
在重新思考Mendix的這個(gè)功能的時(shí)候,你會(huì)發(fā)現(xiàn)實(shí)際包括了兩個(gè)方面的能力,其一就是前面說(shuō)的微服務(wù)編排能力,如上圖可以看到Avtive活動(dòng)節(jié)點(diǎn)可以調(diào)用外部的Rest API接口。其二是常見(jiàn)的頁(yè)面流轉(zhuǎn),事件處理邏輯編排,這個(gè)有點(diǎn)類似于Axure UI設(shè)計(jì)工具里面的前端頁(yè)面事件編排。而Mendix剛好是組合并融合了這兩方面的能力。
低代碼和中臺(tái)什么關(guān)系?
低代碼和中臺(tái)可以說(shuō)完全沒(méi)有關(guān)系。但是在一個(gè)已經(jīng)存在大量遺留系統(tǒng)的企業(yè)中,如何進(jìn)行傳統(tǒng)IT架構(gòu)改造,如何進(jìn)行數(shù)字化轉(zhuǎn)型,這兩者之間就出現(xiàn)了關(guān)系。
其一就是我們常說(shuō)的企業(yè)遺留IT最好是進(jìn)行適配和抽象,形成一個(gè)中臺(tái)能力服務(wù)層,也就是大量可以復(fù)用的業(yè)務(wù)和技術(shù)服務(wù)能力都構(gòu)建在業(yè)務(wù)中臺(tái)和技術(shù)中臺(tái),可以開(kāi)放給上層應(yīng)用使用,方便上層應(yīng)用的快速開(kāi)發(fā)。
那么上層應(yīng)用如何開(kāi)發(fā)?
當(dāng)前你也可以采用傳統(tǒng)的Java開(kāi)發(fā)模式,采用相應(yīng)的微服務(wù)架構(gòu)和分層框架,基于常用的Eclipse等開(kāi)發(fā)環(huán)境進(jìn)行Java應(yīng)用的開(kāi)發(fā)。而我們真正希望的則是在構(gòu)建了完整的中臺(tái)能力服務(wù)層后,對(duì)于前端應(yīng)用的開(kāi)發(fā)能夠完全低代碼或零代碼化。
因此要做到這點(diǎn),新的領(lǐng)域?qū)ο蠼7炊皇亲钪匾摹?/p>
重要的事情變化為兩個(gè),其一就是前端的Page頁(yè)面和可視化表單設(shè)計(jì)能力,其二就是前端表單和后端服務(wù)的綁定能力,這個(gè)綁定不是簡(jiǎn)單的1對(duì)1綁定,還存在API服務(wù)接口的編排能力,而這個(gè)能力是能否基于中臺(tái)已有共享服務(wù)快速開(kāi)發(fā)前端應(yīng)用的關(guān)鍵。
而Mendix的解決思路即使通過(guò)Micro FLow來(lái)解決。
個(gè)人理解,Micro FLow是Mendix這個(gè)低代碼產(chǎn)品里面最大的一個(gè)亮點(diǎn),完全可以在當(dāng)前低代碼平臺(tái)開(kāi)發(fā)中參考和借鑒。