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