低代碼平臺(tái)在解決什么問題?

目前低代碼平臺(tái)如火如荼,低代碼平臺(tái)的優(yōu)劣。在何種情況下,能夠幫助我們解決什么樣的問題?又會(huì)帶來哪些隱患?如何有效控制?

image.png

1、低代碼平臺(tái)

在具體作答之前,需要先搞清楚低代碼平臺(tái)是什么。該名詞最早于2014年6月由Forrester Research最先提出。wiki和gartner都給出了低代碼平臺(tái)的定義。

低代碼開發(fā)平臺(tái)(low-code development platform,簡稱LCDP),是一種方便生成應(yīng)用程序的平臺(tái)軟件,軟件提供開發(fā)環(huán)境,幫助用戶以圖形化接口以及配置的方式編寫程序,而非傳統(tǒng)的程序設(shè)計(jì)作法。
wiki(https://en.wikipedia.org/wiki/Low-code_development_platform)

An LCAP is an application platform that supports rapid application development, deployment, execution and management using declarative, high-level programming abstractions such as model-driven and metadata-based programming languages, and one-step deployments.
gartner(https://www.gartner.com/doc/reprints?id=1-1FKNU1TK&ct=190711)

再結(jié)合mendix,阿里-宜搭等低代碼平臺(tái)的描述,可以看到,低代碼平臺(tái)是一個(gè)能夠?yàn)殚_發(fā)者或業(yè)務(wù)人員提供圖形化界面,或配置的方式,快速生成應(yīng)用程序的平臺(tái)軟件。

2、低代碼平臺(tái)的優(yōu)劣

在討論低代碼平臺(tái)的優(yōu)劣之前,先要分析使用低代碼平臺(tái)進(jìn)行軟件開發(fā)的流程是怎樣的,與傳統(tǒng)開發(fā)流程的差異在哪里,其對(duì)哪些環(huán)節(jié)做了優(yōu)化。

傳統(tǒng),軟件開發(fā)流程 低代碼平臺(tái),軟件開發(fā)的流程
需求定義
架構(gòu)設(shè)計(jì)、技術(shù)選型
UI設(shè)計(jì)(頁面布局、交互、風(fēng)格設(shè)計(jì)等)
基礎(chǔ)設(shè)施搭建
前端編碼
后端編碼
功能性需求測試
非功能性需求測試(安全、性能、擴(kuò)展性等)
應(yīng)用上線
需求定義
UI設(shè)計(jì)(頁面布局)
基礎(chǔ)設(shè)施搭建(如果平臺(tái)提供,則可忽略)
圖形化界面,生成應(yīng)用代碼
功能性需求測試
應(yīng)用上線

對(duì)比可以發(fā)現(xiàn),低代碼平臺(tái)對(duì)比傳統(tǒng)開發(fā)方式,在以下開發(fā)環(huán)節(jié)做了優(yōu)化:

  • UI設(shè)計(jì):傳統(tǒng)流程中的UI設(shè)計(jì),需要對(duì)交互、應(yīng)用風(fēng)格進(jìn)行設(shè)計(jì)。由于低代碼平臺(tái)已經(jīng)定義通用的組件和組件的交互方式,使用者只需關(guān)心頁面布局,由此可保證UI的整體一致性,也可減少設(shè)計(jì)人員的工作量。對(duì)于風(fēng)格的特殊化,部分平臺(tái)也支持自定義theme。
  • 架構(gòu)設(shè)計(jì)、技術(shù)選型:傳統(tǒng)開發(fā)流程中,在項(xiàng)目之初,項(xiàng)目開發(fā)者需要了解項(xiàng)目需求和目標(biāo),使用DDD等手段拆分微服務(wù),選擇適合業(yè)務(wù)場景的前端后技術(shù)棧。由于低代碼平臺(tái)的封裝,使用者無需關(guān)心平臺(tái)生成應(yīng)用背后的技術(shù)棧和架構(gòu)設(shè)計(jì),這些早已被平臺(tái)定制化。
  • 基礎(chǔ)設(shè)施搭建:傳統(tǒng)流程中的基礎(chǔ)設(shè)施搭建,需要包含前后端項(xiàng)目搭建、CI/CD流水線、數(shù)據(jù)存儲(chǔ)、應(yīng)用部署。對(duì)于部分融合了云平臺(tái)的低代碼產(chǎn)品,例如阿里宜搭,已經(jīng)提供端到端解決方案,數(shù)據(jù)存儲(chǔ)、環(huán)境搭建等,整個(gè)基礎(chǔ)設(shè)施的搭建均不需要使用者關(guān)心。對(duì)于暫不支持端到端解決方案的低代碼平臺(tái),仍需使用者準(zhǔn)備數(shù)據(jù)存儲(chǔ)和手動(dòng)部署應(yīng)用。
  • 圖形化界面,生成應(yīng)用代碼:低代碼平臺(tái)通過界面拖拽和配置生成前端代碼,通過數(shù)據(jù)字段映射、通用API、流程引擎的配合生成后端代碼,替代了傳統(tǒng)軟件開發(fā)中的前端和后端編碼。前端和后端的編碼環(huán)節(jié),在整個(gè)開發(fā)流程中占據(jù)了主要的成本和時(shí)間。低代碼平臺(tái)以圖形化界面的開發(fā)方式,提高效率,節(jié)約成本。
  • 非功能型需求測試:傳統(tǒng)開發(fā)流程,需要關(guān)注應(yīng)用最終的非功能需求,例如安全性,防止代碼中存在安全隱患;或者性能,需要滿足多少吞吐量和并發(fā)。對(duì)于低代碼平臺(tái),代碼的安全性和性能,已經(jīng)交于平臺(tái)負(fù)責(zé),在使用者選用低代碼平臺(tái)時(shí),應(yīng)關(guān)注平臺(tái)在該方面的能力,而非在在應(yīng)用開發(fā)后測試。

由此,也可以發(fā)現(xiàn),對(duì)比傳統(tǒng)的軟件開發(fā)方式,低代碼平臺(tái)具備以下優(yōu)勢(shì):

  • 提升效率:
    • 利用圖形化界面生成代碼的方式,減少前端和后端代碼工作,縮短開發(fā)時(shí)間;
    • 組件、功能的復(fù)用,避免重復(fù)造輪子;
    • 業(yè)務(wù)人員可以跳過開發(fā),直接從需求到產(chǎn)品;
    • 對(duì)于支持端到端解決方案的低代碼平臺(tái),能夠節(jié)省基礎(chǔ)設(shè)施的搭建工作。
  • 降低成本:
    • 低代碼平臺(tái)降低開發(fā)人員要求,初級(jí)開發(fā)人員和業(yè)務(wù)人員也可以利用平臺(tái)快速開發(fā)應(yīng)用軟件,降低軟件開發(fā)成本;
    • 由于開發(fā)流程的的優(yōu)化,應(yīng)用軟件開發(fā)周期隨之縮短,最終降低應(yīng)用軟件開發(fā)的支出。
  • 增加靈活性:
    • 人員配置更加靈活,低代碼平臺(tái)降低了使用者的學(xué)習(xí)成本和使用成本,使得初級(jí)開發(fā)人員和業(yè)務(wù)人員也可以開發(fā)應(yīng)用;
    • 業(yè)務(wù)方面增加靈活性,應(yīng)用開發(fā)達(dá)到了所見即所得的效果,便于產(chǎn)品快速試錯(cuò)。
  • 一致用戶體驗(yàn):傳統(tǒng)前端開發(fā),UI界面自定義程度較高,再加上多端多團(tuán)隊(duì)開發(fā),容易導(dǎo)致UI界面不一致,造成用戶體驗(yàn)感下降。
    • 低代碼平臺(tái)內(nèi)置統(tǒng)一的交互和設(shè)計(jì)風(fēng)格,生成應(yīng)用軟件UI高度統(tǒng)一;
    • 頁面布局,可根據(jù)不同業(yè)務(wù)場景進(jìn)行調(diào)整。
  • 安全性有保證:
    • 減少了人這一不確定因素的參與。軟件開發(fā)中,最不穩(wěn)定因素來源于開發(fā)人員,低代碼平臺(tái)對(duì)于組件、流程引擎、統(tǒng)一接口等公共功能進(jìn)行封裝,避免重復(fù)造輪子,從而也減少了bug產(chǎn)生;
    • 低代碼平臺(tái)已內(nèi)置統(tǒng)一的安全管控,例如XSS攻擊防護(hù)、權(quán)限管理,從而保證應(yīng)用軟件的整體安全性,無需使用者重點(diǎn)關(guān)注。

但同時(shí),低代碼平臺(tái)也存在以下劣勢(shì):

  • 適用應(yīng)用場景有限:
    • 低代碼平臺(tái)一般只針對(duì)特定的業(yè)務(wù)場景,是對(duì)部分業(yè)務(wù)需求中公共部分的抽象,不能滿足所有業(yè)務(wù)場景,并非軟件開發(fā)的銀彈。
    • 自定義程度有所限制,例如布局僅能依靠平臺(tái)內(nèi)置布局。用戶只能使用預(yù)定制的組件構(gòu)建應(yīng)用,無法滿足高度定制化的需求。
  • 性能負(fù)載存在瓶頸:低代碼平臺(tái)所生成應(yīng)用軟件,能夠滿足通用的性能要求。但隨著用戶的不斷增加,應(yīng)用軟件的性能問題也會(huì)隨之暴露。
    • 受限于平臺(tái)生成應(yīng)用,所使用的架構(gòu)和技術(shù)棧,傳統(tǒng)的調(diào)整手段和優(yōu)化方式,例如增加redis緩存,可能并不適用。
  • 學(xué)習(xí)成本:
    • 存在額外的學(xué)習(xí)成本,但學(xué)習(xí)曲線較為平緩。
    • 低代碼平臺(tái)之間無法知識(shí)共享。由于低代碼平臺(tái),自身抽象程度和方式的不同,導(dǎo)致平臺(tái)之間的使用方式差異較大,不易進(jìn)行知識(shí)共享。
  • 存在合規(guī)性問題:
    • 由于低代碼平臺(tái)快速構(gòu)建應(yīng)用,在構(gòu)建過程中,可能會(huì)存在一定的合規(guī)性問題,缺少必要部門的審核和監(jiān)管。

3、在何種情況下能夠幫助客戶解決什么樣的問題?

預(yù)計(jì)到2024年,低代碼平臺(tái)將會(huì)參與到65%的應(yīng)用開發(fā)活動(dòng)。到2024年,75%的低代碼平臺(tái)開發(fā)將被局限在非關(guān)鍵型任務(wù)、中小型應(yīng)用。到2024年,75%的大型企業(yè)將至少擁有四套低代碼開發(fā)工具。
--《Low-Code Development Technologies Evaluation Guide》

隨著云時(shí)代的到來,借助云平臺(tái),低代碼平臺(tái)也擁較為廣闊的市場。從低代碼平臺(tái)的特征及現(xiàn)有產(chǎn)品,可以發(fā)現(xiàn)低代碼平臺(tái)能夠解決一些通用性問題,支持一些具備共性的業(yè)務(wù)場景。但同時(shí)也需要注意到,低代碼平臺(tái)也并非銀彈,無法解決所有問題。

低代碼平臺(tái)能夠解決:

  • 重復(fù)開發(fā),耗時(shí)耗力:在非核心業(yè)務(wù)場景,存在大量相似場景,例如表單應(yīng)用,此類應(yīng)用開發(fā)難度較低、但開發(fā)成本高、周期長。在該場景下,利用低代碼平臺(tái),較少的開發(fā)人員和業(yè)務(wù)人員,可以在較短時(shí)間內(nèi)生成應(yīng)用。從而幫助客戶解決相似功能應(yīng)用重復(fù)開發(fā),耗時(shí)耗力的問題。
  • 快速驗(yàn)證和試錯(cuò):對(duì)于部分核心場景,低代碼平臺(tái)可以利用其低成本、高效率的優(yōu)勢(shì),幫助客戶生成試驗(yàn)版本,在市場中進(jìn)行快速驗(yàn)證或試錯(cuò)。幫助客戶以往試錯(cuò)成本高,無法緊跟市場變化的問題。
  • 快速應(yīng)對(duì)臨時(shí)業(yè)務(wù):對(duì)于臨時(shí)業(yè)務(wù),例如疫情期間的打卡程序,傳統(tǒng)開發(fā)方式耗費(fèi)人力和時(shí)間,且ROI較低??梢酝ㄟ^低代碼平臺(tái),快速生成應(yīng)用,避免過大的成本投入。幫助客戶解決臨時(shí)業(yè)務(wù)高成本、低產(chǎn)出的問題。

4、低代碼平臺(tái)會(huì)帶來哪些隱患?如何有效控制?

低代碼平臺(tái)可能存在的隱患,需要透過低代碼平臺(tái)的核心和技術(shù)發(fā)現(xiàn)。
低代碼平臺(tái)的核心之一是,對(duì)業(yè)務(wù)的一層抽象。我們知道軟件開發(fā)需要隨著市場需求變化,需要高度的定制化。但是基于一個(gè)特定領(lǐng)域的定制化需求,也是能夠抽取出共性的。例如表單應(yīng)用,雖然字段、交互、審批流程有差異,但基本業(yè)務(wù)流程是一致的,設(shè)計(jì)表單、填寫表單、審批、展示。針對(duì)這一特定領(lǐng)域的低代碼平臺(tái),便可以通過邏輯和規(guī)則編排出定制化的表單應(yīng)用。
低代碼平臺(tái)的另一個(gè)核心是對(duì)編碼做一層封裝,低代碼平臺(tái)上的界面組裝、組件拖拉拽、流程設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),就是這層封裝表現(xiàn)。
實(shí)現(xiàn)這層封裝,就需要借助DSL和語言解釋器。DSL是領(lǐng)域特定語言,用于對(duì)特定領(lǐng)域進(jìn)行描述,語言解釋器是對(duì)DSL的翻譯,既可以將DSL翻譯為機(jī)器能夠理解的代碼,亦可以將用戶的界面操作翻譯為DSL。DSL和語言解釋器應(yīng)成對(duì)出現(xiàn)。
一個(gè)低代碼平臺(tái)的DSL可能由多種,常見的可能有

  • UI的DSL(包含元素、樣式、布局等)
  • 數(shù)據(jù)結(jié)構(gòu)的DSL
  • 流程引擎的DSL

借助DSL,低代碼平臺(tái)可以實(shí)現(xiàn)代碼、組件、項(xiàng)目的復(fù)用。將復(fù)用的組件和代碼,使用邏輯和規(guī)則進(jìn)行編排,便生成應(yīng)用軟件。這種方式的復(fù)用和編排,有利于降低新建應(yīng)用軟件的復(fù)雜度,這也是低代碼平臺(tái)能夠做到提升效率,降低成本的核心所在。

外購第三方低代碼平臺(tái)

“業(yè)務(wù)的復(fù)雜度不會(huì)消失,只會(huì)轉(zhuǎn)移?!崩玫痛a平臺(tái)快速生成應(yīng)用軟件,也是把業(yè)務(wù)復(fù)雜度從編碼轉(zhuǎn)移到低代碼平臺(tái)中。但正是這層轉(zhuǎn)移,使得外購第三方的低代碼平臺(tái)成為一個(gè)可選項(xiàng)。如此,便可以省去己方的開發(fā)復(fù)雜度,進(jìn)而節(jié)省資源和人力成本。
但同時(shí),利用第三方平臺(tái)也存在以下風(fēng)險(xiǎn),需要注意:

  • 廠商捆綁的風(fēng)險(xiǎn)。DSL和語言解釋器大多是黑盒,內(nèi)部的實(shí)現(xiàn)邏輯各個(gè)平臺(tái)各不相同,且現(xiàn)階段并沒有通用協(xié)議規(guī)范。風(fēng)險(xiǎn)發(fā)生時(shí),輕則無法更新應(yīng)用軟件(低代碼平臺(tái)只生成代碼),重則在低代碼平臺(tái)上運(yùn)營的應(yīng)用軟件均無法使用(使用低代碼平臺(tái)的端到端解決方案)??梢酝ㄟ^以下方式緩解和預(yù)防該風(fēng)險(xiǎn)。
    • 選用多個(gè)低代碼平臺(tái),均攤風(fēng)險(xiǎn)。《Low-Code Development Technologies Evaluation Guide》報(bào)告中也提到,到2024年,75%的大型企業(yè)將擁有多套低代碼工具。多vendor的方式可以形成有效的競爭,避免一家獨(dú)大。即使風(fēng)險(xiǎn)發(fā)生,也可以做到快速切換。
    • 選擇非核心業(yè)務(wù)場景生成應(yīng)用,以此降低風(fēng)險(xiǎn)影響。即使風(fēng)險(xiǎn)發(fā)生,此類應(yīng)用不涉及企業(yè)核心領(lǐng)域,可以保證充足時(shí)間,尋找替換方案。
    • 低代碼平臺(tái)私有化部署。私有化部署,可以降低風(fēng)險(xiǎn)的影響,保證已有已有應(yīng)用能夠正常運(yùn)行和更新,數(shù)據(jù)也由己方掌控。風(fēng)險(xiǎn)發(fā)生時(shí),也只會(huì)影響到低代碼平臺(tái)本身的升級(jí)和廠商支持。
    • 也可通過自建的方式,避免廠商捆綁。
  • 技術(shù)風(fēng)險(xiǎn)
    • 版本支持方式。隨著低代碼平臺(tái)升級(jí),DSL和語言解釋器也會(huì)隨之升級(jí)。需要提前確認(rèn),版本兼容性,以及應(yīng)用軟件升級(jí)策略。
    • 第三方集成。應(yīng)用軟件開發(fā),需要與大量三方系統(tǒng)集成,低代碼平臺(tái)需要提供較為易用的第三方集成方式。
    • 業(yè)務(wù)邊界。由于低代碼平臺(tái),具有一定的局限性。需要提前了解廠商產(chǎn)品的業(yè)務(wù)邊界,確認(rèn)是否符合己方要求。
  • 其他風(fēng)險(xiǎn)
    • 性能風(fēng)險(xiǎn),選用廠商時(shí),應(yīng)提前了解生成應(yīng)用軟件的性能極限,例如最大用戶并發(fā)、數(shù)據(jù)表最大容量,和適用的性能調(diào)優(yōu)手段,例如是否支持橫向擴(kuò)展。進(jìn)而幫助己方選擇適用場景。
    • 安全風(fēng)險(xiǎn),提前了解廠商產(chǎn)品的安全防護(hù)策略,以及判斷是否滿足企業(yè)自身的合規(guī)性要求。例如端到端解決方案,是否提供多套環(huán)境,支持企業(yè)內(nèi)部的驗(yàn)收和審查。

自建低代碼平臺(tái)

通過自建低代碼平臺(tái)的方式,可以避免第三方的風(fēng)險(xiǎn),但同時(shí)也將業(yè)務(wù)復(fù)雜度轉(zhuǎn)移到企業(yè)內(nèi)部。在自建低代碼平臺(tái)時(shí),需要關(guān)注以下風(fēng)險(xiǎn)

  • 建設(shè)大而全的平臺(tái)風(fēng)險(xiǎn)。平臺(tái)建設(shè)之初,應(yīng)確立低代碼平臺(tái)關(guān)注的問題,確定業(yè)務(wù)邊界。
    • 確定低代碼平臺(tái)建設(shè)的針對(duì)領(lǐng)域,解決該領(lǐng)域的通用性問題。對(duì)于非該領(lǐng)域問題,應(yīng)避免納入平臺(tái),以免成為大而全的平臺(tái),增加維護(hù)成本和開發(fā)成本。例如圖表展示功能,并非低代碼平臺(tái)的核心域,可以借助第三方平臺(tái)完成,以teablue等第三方平臺(tái)通過iframe嵌入的方式支持。
    • DSL設(shè)計(jì)粒度。例如組件粒度設(shè)計(jì)不夠細(xì),無法滿足用戶需要;設(shè)計(jì)的太細(xì),維護(hù)和開發(fā)成本高。1、應(yīng)滿足大多數(shù)應(yīng)用場景,對(duì)于ROI較低的場景,可以結(jié)合流程引擎和少量代碼完成。2、引入用戶擴(kuò)展組件功能,用戶可以在原有組件基礎(chǔ)上,自行擴(kuò)展,自行維護(hù)。
    • 第三方對(duì)接。應(yīng)用軟件不再是單獨(dú)存在,它需要借助不同應(yīng)用的能力,才能實(shí)現(xiàn)業(yè)務(wù)價(jià)值。對(duì)于低代碼平臺(tái)而言,需要設(shè)計(jì)良好的第三方對(duì)接方式,便于利用不同應(yīng)用的能力。
  • 平臺(tái)升級(jí),舊版本應(yīng)用無法兼容的風(fēng)險(xiǎn)。平臺(tái)升級(jí)后,DSL和語言解釋器也需隨之升級(jí),版本兼容需要一定的策略,平衡兼容性和可維護(hù)性。
    • 小版本兼容。保留舊版本語法解釋器,或者兼容舊版本DSL,保證小版本的兼容。
    • 不支持跨大版本兼容。1、保證就應(yīng)用繼續(xù)使用,但不允許導(dǎo)入平臺(tái)繼續(xù)修改。2、提供舊版本應(yīng)用升級(jí)策略或升級(jí)腳本。
  • 性能風(fēng)險(xiǎn)。
    • 低代碼平臺(tái)所生成的應(yīng)用,在用戶增加時(shí),可能會(huì)存在性能下降的問題。解決性能問題的方式,與平臺(tái)構(gòu)建應(yīng)用的模型強(qiáng)相關(guān),有一定的特殊性和局限性。1、提前預(yù)測應(yīng)用的性能需求,對(duì)于高性能要求的應(yīng)用應(yīng)避免使用低代碼平臺(tái)生成。2、可以增加應(yīng)用橫向擴(kuò)展的功能,儲(chǔ)備性能提升預(yù)案和方法。
    • 對(duì)于核心場景或者ToC應(yīng)用的試驗(yàn)場景,需要提示開發(fā)者,平臺(tái)所產(chǎn)生的應(yīng)用可以達(dá)到的最大性能。
  • 資源浪費(fèi)的風(fēng)險(xiǎn)。低代碼平臺(tái)可快速構(gòu)建和部署,會(huì)存在大量無用應(yīng)用,造成資源浪費(fèi)。
    • serverless方式部署應(yīng)用,避免應(yīng)用長期占用資源。
    • 以制度管控加成本核算的方式,提高資源利用率。

5、結(jié)論

  • 云時(shí)代,低代碼平臺(tái)市場更加廣闊,除第三方低代碼平臺(tái)外,企業(yè)自建平臺(tái)需求巨大。
  • 低代碼平臺(tái)的核心在于對(duì)特定領(lǐng)域的業(yè)務(wù)抽象對(duì)代碼的封裝。這層封裝主要以DSL語言解釋器實(shí)現(xiàn)。
  • 低代碼平臺(tái)同時(shí)也是對(duì)代碼的復(fù)用,可以有效降低成本、提高效率。
  • 低代碼平臺(tái),需要明確應(yīng)用場景,避免大而全的產(chǎn)品。

參考文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容