低代碼平臺(tái):10分鐘從入門(mén)到原理(低代碼平臺(tái)的實(shí)現(xiàn)方式)
一、低代碼平臺(tái)簡(jiǎn)介
1. 概念
廣義上的低代碼平臺(tái)包括低代碼平臺(tái)和零代碼平臺(tái),它們都屬于APaaS(Application Platform as a Service 應(yīng)用平臺(tái)即服務(wù)),兩者的主要區(qū)別在于對(duì)代碼的依賴(lài)程度:
-
低代碼平臺(tái):通過(guò)自動(dòng)代碼生成和可視化編程,只需要少量代碼,即可快速搭建各種應(yīng)用
零代碼平臺(tái):零開(kāi)發(fā)經(jīng)驗(yàn)的業(yè)務(wù)人員通過(guò)拖拽等方式,無(wú)需編寫(xiě)代碼,即可快速搭建各種應(yīng)用
以上可知,低代碼平臺(tái)面向開(kāi)發(fā)人員,專(zhuān)業(yè)性較強(qiáng),可以提高開(kāi)發(fā)效率,但要求使用者具備一定的技術(shù)基礎(chǔ);零代碼平臺(tái)降低了開(kāi)發(fā)門(mén)檻,從而將用戶(hù)范圍擴(kuò)展到了業(yè)務(wù)人員。大家可以類(lèi)比一下PhotoShop與美圖秀秀,大概就是這么個(gè)區(qū)別。
2. 優(yōu)勢(shì)及局限
相較于原生開(kāi)發(fā)模式,低代碼開(kāi)發(fā)平臺(tái)能顯著提升開(kāi)發(fā)效率,尤其適合業(yè)務(wù)變化快、預(yù)算有限、開(kāi)發(fā)時(shí)間緊迫的企業(yè)應(yīng)用場(chǎng)景;相較于只能解決行業(yè)通用問(wèn)題的SaaS租用模式,低代碼平臺(tái)適用范圍更廣,可以滿(mǎn)足個(gè)性化需求,有較強(qiáng)的靈活性。
低代碼平臺(tái)也有明顯的局限性,至少就目前來(lái)說(shuō),它主要用于搭建企業(yè)軟件,因?yàn)榇祟?lèi)軟件架構(gòu)是有一定規(guī)律的,低代碼平臺(tái)的產(chǎn)品設(shè)計(jì)者正是找到了這種規(guī)律(快看,這就是智慧呀!),但它并不適合娛樂(lè)、社交等軟件開(kāi)發(fā)。此外,低代碼平臺(tái)目前仍處于發(fā)展初期,成熟度也待進(jìn)一步提升。
二、低代碼平臺(tái)兩種技術(shù)路線(xiàn)
1. 基于IDE框架的快速開(kāi)發(fā)平臺(tái)
該方案將傳統(tǒng)的集成開(kāi)發(fā)環(huán)境(IDE)充分可視化,開(kāi)發(fā)者對(duì)前端界面組件、數(shù)據(jù)源綁定方式、數(shù)據(jù)模型、業(yè)務(wù)邏輯和工作流等都可以自由定義,平臺(tái)將自動(dòng)生成代碼,開(kāi)發(fā)者也可以添加自己的代碼,對(duì)程序具有較強(qiáng)的控制能力,因此該方案具備更高的靈活性,可以設(shè)計(jì)出定制化程度高、邏輯復(fù)雜的軟件。
由于該方案仍涉及代碼開(kāi)發(fā)、部署等技術(shù)工作,所以它仍然是一個(gè)技術(shù)開(kāi)發(fā)平臺(tái),需要較高的學(xué)習(xí)成本,主要價(jià)值是提高開(kāi)發(fā)效率,減少重復(fù)勞動(dòng)。
Outsystems就是采用該方案的典型產(chǎn)品,如下為產(chǎn)品截圖:
2. 基于模型驅(qū)動(dòng)的應(yīng)用平臺(tái)
用戶(hù)通過(guò)可視化方式構(gòu)建數(shù)據(jù)模型、視圖、權(quán)限、工作流等,即可在平臺(tái)提供的環(huán)境中運(yùn)行,無(wú)需編譯部署,更像一種傻瓜式的應(yīng)用搭建平臺(tái)。平臺(tái)對(duì)各類(lèi)組件、業(yè)務(wù)邏輯做了較高層級(jí)的封裝,因此用戶(hù)無(wú)法隨心所欲修改界面風(fēng)格、交互方式、處理邏輯等。
該方案可以實(shí)現(xiàn)完全零代碼,對(duì)使用者技術(shù)要求不高,但需要具備業(yè)務(wù)抽象、建模能力。主要價(jià)值是降低開(kāi)發(fā)門(mén)檻、快速適應(yīng)變化。
明道云、伙伴云等都是此類(lèi)方案的典型產(chǎn)品,如下為明道云的產(chǎn)品截圖:
三、低代碼平臺(tái)核心要素
軟件產(chǎn)品的搭建從原生代碼開(kāi)發(fā)到SaaS租用再到低代碼平臺(tái),都是人們?yōu)榱私档烷_(kāi)發(fā)成本、控制項(xiàng)目風(fēng)險(xiǎn)(超過(guò)50%的軟件項(xiàng)目都是失敗的,無(wú)法為客戶(hù)帶來(lái)預(yù)期價(jià)值)、提高開(kāi)發(fā)效率不斷努力的結(jié)果,人們期望能找到更通用更高效的解決方案。前文也已經(jīng)提到,低代碼平臺(tái)之所以能廣泛用于企業(yè)軟件的搭建就是因?yàn)槿藗兂酝噶似髽I(yè)軟件的本質(zhì)(底層思維能力是多么的重要!),找到了某種規(guī)律,那么是什么規(guī)律呢?
絕大部分的企業(yè)軟件由以下四個(gè)部分組成:
-
業(yè)務(wù)實(shí)體:即操作對(duì)象,如客戶(hù)、訂單
業(yè)務(wù)活動(dòng):即進(jìn)行何種操作,如采購(gòu)申請(qǐng)、合同審批
業(yè)務(wù)權(quán)限:即何種人擁有何種權(quán)限,包括數(shù)據(jù)查看權(quán)限和數(shù)據(jù)操作權(quán)限,如部門(mén)經(jīng)理可以管理所有下屬的客戶(hù)信息,而員工只能管理自己的客戶(hù)信息
統(tǒng)計(jì)報(bào)表:即從哪些方面量化企業(yè)活動(dòng)情況,如客戶(hù)增長(zhǎng)率、各月銷(xiāo)售額趨勢(shì)
低代碼平臺(tái)將以上進(jìn)行抽象,支持?jǐn)?shù)據(jù)模型、業(yè)務(wù)流程、用戶(hù)權(quán)限、統(tǒng)計(jì)圖表,因此可以作為更通用的企業(yè)軟件解決方案,這四類(lèi)能力也是任何一個(gè)低代碼平臺(tái)都必須具備的核心要素。下面我們來(lái)看一下低代碼平臺(tái)是如何支持這四個(gè)要素的:
1. 數(shù)據(jù)模型
建立數(shù)據(jù)模型就是提取業(yè)務(wù)實(shí)體的數(shù)據(jù)特征,抽象為數(shù)據(jù)表,建立表間關(guān)系。B端產(chǎn)品經(jīng)理制作ER圖的過(guò)程就是數(shù)據(jù)建模。市面上常見(jiàn)的低代碼平臺(tái)均提供了豐富的控件,可以拖拽完成數(shù)據(jù)模型搭建。此外,數(shù)據(jù)模型搭建與表單展示合二為一,每完成一個(gè)數(shù)據(jù)表的創(chuàng)建,就自動(dòng)生成了該表的增刪改查功能及相關(guān)頁(yè)面,進(jìn)而隱藏了數(shù)據(jù)庫(kù)設(shè)計(jì)、前端開(kāi)發(fā)這些專(zhuān)業(yè)技術(shù)。其實(shí),這也就是我們常說(shuō)的表單引擎。
這里順便提一下,雖然很多低代碼平臺(tái)將數(shù)據(jù)建模與表單展示合二為一,但通過(guò)這種方式自動(dòng)生成的表單只能實(shí)現(xiàn)最基礎(chǔ)的增刪改查頁(yè)面,用戶(hù)對(duì)界面展示內(nèi)容及形式的控制程度很低,無(wú)法滿(mǎn)足大部分企業(yè)軟件的需求,所以低代碼平臺(tái)一般還會(huì)提供自定義頁(yè)面功能,用戶(hù)可根據(jù)需要在頁(yè)面上配置按鈕、圖表等元素,滿(mǎn)足個(gè)性化需求。
如下圖分別為明道云單個(gè)業(yè)務(wù)實(shí)體創(chuàng)建界面及平臺(tái)自動(dòng)生成的新增該業(yè)務(wù)實(shí)體頁(yè)面。這里我以學(xué)生、班級(jí)為例,配置了【班級(jí)】這個(gè)業(yè)務(wù)實(shí)體包含的字段,并設(shè)置了【班級(jí)】實(shí)體與已創(chuàng)建的【學(xué)生】實(shí)體的 1:n 關(guān)聯(lián)關(guān)系:
2. 業(yè)務(wù)流程
業(yè)務(wù)流程指為了實(shí)現(xiàn)某項(xiàng)目標(biāo),由多人合作,按照一定的規(guī)則、順序進(jìn)行的一系列活動(dòng),在軟件中,業(yè)務(wù)流程的參與者可以是人,也可以是程序。低代碼平臺(tái)實(shí)現(xiàn)了可視化流程配置,用戶(hù)對(duì)觸發(fā)條件、處理節(jié)點(diǎn)、節(jié)點(diǎn)參與者進(jìn)行配置,實(shí)現(xiàn)自定義業(yè)務(wù)流程。
如下圖是明道云業(yè)務(wù)流程配置界面: