五大維度詳解低代碼、純代碼和無代碼的區(qū)別與聯(lián)系(低代碼和無代碼是什么)
目前,關(guān)于低代碼、純代碼和無代碼之間的關(guān)系,業(yè)界一直存在著各種爭論。因此,本文將從定義、技術(shù)特征、開發(fā)者、應(yīng)用場景和經(jīng)濟(jì)性論述三者之間的區(qū)別與聯(lián)系,厘清三者之間的關(guān)系。
01從定義看三者的區(qū)別與聯(lián)系
廣義的“低代碼”(Low-Code)概念于2014年由Forrester首次正式提出,定義為:能夠以“最少的手寫代碼”和設(shè)置快速開發(fā)應(yīng)用、配置和部署業(yè)務(wù)應(yīng)用程序?!凹兇a”(Pro-Code)定義為:傳統(tǒng)的以“全程手寫代碼”為中心的開發(fā)模式?!盁o代碼”(No-Code)定義為:在可視化界面中,通過拖拉拽代碼模塊,“無需手寫代碼”直接搭建應(yīng)用系統(tǒng)。從定義可以看出,如果假定純代碼的開發(fā)代碼量是100,那么無代碼的開發(fā)代碼量就是0,三者之間的關(guān)系可表述為下面公式所示:
廣義的低代碼=無代碼× X% 純代碼× (1-X%)
其中,X(0≤X≤100)代表了可復(fù)用的“數(shù)字化資產(chǎn)”滿足業(yè)務(wù)需求的程度。X值越大,數(shù)字化資產(chǎn)滿足業(yè)務(wù)需求的程度越高,但同時(shí),代碼靈活性會(huì)被削弱。當(dāng)X=0時(shí),就是純代碼;0<x<100時(shí),就是“狹義的低代碼”;當(dāng)x=100時(shí),就是無代碼。
02從技術(shù)特征看三者的區(qū)別與聯(lián)系
1.純代碼的技術(shù)特征
純代碼的開發(fā)方法是模型驅(qū)動(dòng),采用“全程手寫代碼”的方式搭建應(yīng)用系統(tǒng),代碼不會(huì)自動(dòng)生成,因此不依賴開發(fā)平臺(tái)的可復(fù)用“數(shù)字化資產(chǎn)”,編碼靈活性高、定制性強(qiáng)、應(yīng)用的可移植性強(qiáng)。開發(fā)者可以根據(jù)自己的偏好編寫代碼,可編程能力強(qiáng),但要求開發(fā)者對(duì)核心編碼的邏輯有相當(dāng)深入的理解。由于開發(fā)者能力不同,會(huì)導(dǎo)致編碼的標(biāo)準(zhǔn)化程度低,用戶操作體驗(yàn)不一致,錯(cuò)誤率偏高。
另外,開發(fā)者還需要自建部署和運(yùn)維環(huán)境,整個(gè)應(yīng)用的BizDevOps一體化過程相當(dāng)復(fù)雜,對(duì)開發(fā)者的技術(shù)要求很高。
2.無代碼的技術(shù)特征
無代碼的開發(fā)方法是表單驅(qū)動(dòng),在可視化界面中,通過拖拉拽代碼模塊,“無需手寫代碼”的方式搭建應(yīng)用系統(tǒng)。100%的代碼由平臺(tái)自動(dòng)生成,可以消滅所有繁瑣和重復(fù)的樣板代碼(Boilerplate Code),因此對(duì)開發(fā)平臺(tái)的可復(fù)用“數(shù)字化資產(chǎn)”依賴程度非常高。平臺(tái)不會(huì)提供編程擴(kuò)展接口,源碼無法進(jìn)行客戶化編輯,編碼的靈活性和定制性完全取決于平臺(tái)提供的“數(shù)字化資產(chǎn)”數(shù)量和質(zhì)量。應(yīng)用的可移植性也依賴aPaaS平臺(tái)的功能,存在非常強(qiáng)的制約。開發(fā)者不可以編寫代碼,因此不需要開發(fā)者理解編碼的基本邏輯。但由于100%的代碼由平臺(tái)自動(dòng)生成,因此編碼的標(biāo)準(zhǔn)化程度非常高,用戶操作體驗(yàn)一致,錯(cuò)誤率極低。另外,開發(fā)者通過aPaaS平臺(tái),直接在云端完成整個(gè)應(yīng)用的BizDevOps一體化過程,完全不需要專業(yè)技術(shù)人員的參與,整個(gè)過程所見即所得,對(duì)開發(fā)者基本沒有技術(shù)要求。
3.低代碼的技術(shù)特征
低代碼的開發(fā)方法是可視化IDE模式,開發(fā)模式以“最少的手寫代碼”的方式搭建應(yīng)用系統(tǒng)。80%以上的代碼由平臺(tái)搭建,可以消滅絕大部分繁瑣和重復(fù)的樣板代碼,因此對(duì)開發(fā)平臺(tái)的可復(fù)用“數(shù)字化資產(chǎn)”依賴程度較高。
另外,平臺(tái)會(huì)提供編程擴(kuò)展接口,方便開發(fā)者導(dǎo)出導(dǎo)入源碼進(jìn)行客戶化編輯,依賴開發(fā)平臺(tái)提供的可復(fù)用的“數(shù)字化資產(chǎn)”,編碼的靈活性和定制性較高,應(yīng)用的可移植性依賴aPaaS平臺(tái)的功能,存在一定的制約。
開發(fā)者可根據(jù)自己的偏好改寫部分代碼,可編程能力較強(qiáng),這就要求開發(fā)者對(duì)編碼的基本邏輯有比較深入的理解。但由于開發(fā)者只能改動(dòng)部分代碼,因此80%以上的編碼的標(biāo)準(zhǔn)化程度較高,用戶操作體驗(yàn)較為一致,錯(cuò)誤率也控制在改寫的編碼范圍內(nèi)。
另外,開發(fā)者通過aPaaS平臺(tái),直接在云端完成整個(gè)應(yīng)用的BizDevOps一體化過程,可以不需要專業(yè)技術(shù)人員的參與,降低了對(duì)開發(fā)者的技術(shù)要求。
4.技術(shù)特征的區(qū)別與聯(lián)系
雖然上述三者在技術(shù)上存在很大的區(qū)別,但從軟件開發(fā)技術(shù)演進(jìn)過程中的角度看,低代碼處于純代碼與無代碼中間的階段,既能夠降低純代碼的技術(shù)門檻,同時(shí)也能通過編程擴(kuò)展接口,提供客戶化的編碼功能。通過aPaaS平臺(tái)實(shí)現(xiàn)應(yīng)用的BizDevOps一體化過程,顯著降低了對(duì)開發(fā)者的技術(shù)要求。
03從目標(biāo)開發(fā)者看三者的區(qū)別與聯(lián)系
1.純代碼的目標(biāo)開發(fā)者
純代碼對(duì)開發(fā)者的技術(shù)要求很高,因此需要“專業(yè)開發(fā)者”(Professional Developers),指服務(wù)于專業(yè)IT部門的IT技術(shù)人員,包含程序員、項(xiàng)目經(jīng)理、實(shí)施顧問等。整個(gè)開發(fā)過程中,所有的業(yè)務(wù)和技術(shù)的復(fù)雜度都由“專業(yè)開發(fā)者”全程負(fù)責(zé)。
2.無代碼的目標(biāo)開發(fā)者
無代碼對(duì)開發(fā)者基本沒有技術(shù)要求,因此只需要“公民開發(fā)者”(Citizen Developers),指來自財(cái)務(wù)、銷售、運(yùn)作等業(yè)務(wù)部門,本職工作與IT無關(guān),但參與到軟件開發(fā)中的業(yè)務(wù)開發(fā)者,完全可以獨(dú)立或在技術(shù)人員的指導(dǎo)下開發(fā)出更符合業(yè)務(wù)需求的輕量化應(yīng)用,擴(kuò)大了應(yīng)用開發(fā)勞動(dòng)力,實(shí)現(xiàn)了應(yīng)用程序開發(fā)的民主化。整個(gè)開發(fā)過程中,所有的業(yè)務(wù)復(fù)雜度由“公民開發(fā)者”負(fù)責(zé),而所有的技術(shù)復(fù)雜度則由“低代碼平臺(tái)”負(fù)責(zé)。
3.低代碼的目標(biāo)開發(fā)者
低代碼兼具了無代碼和純代碼的技術(shù)特點(diǎn),因此需要“專業(yè)開發(fā)者和公民開發(fā)者的融合團(tuán)隊(duì)”,指由專業(yè)IT技術(shù)人員和業(yè)務(wù)開發(fā)者組成的團(tuán)隊(duì),目的在于提升應(yīng)用開發(fā)的整體效率。
公民開發(fā)者負(fù)責(zé)更貼近業(yè)務(wù)的、相對(duì)簡單的無代碼開發(fā)工作,讓專業(yè)開發(fā)者更專注于技術(shù)性強(qiáng)、難度大的純代碼開發(fā)工作。整個(gè)開發(fā)過程中,所有的業(yè)務(wù)復(fù)雜度由“公民開發(fā)者”負(fù)責(zé),客戶化代碼的技術(shù)復(fù)雜度則由“專業(yè)開發(fā)者”負(fù)責(zé),樣板代碼的技術(shù)復(fù)雜度則由“低代碼平臺(tái)”負(fù)責(zé)。
4.目標(biāo)開發(fā)者的區(qū)別與聯(lián)系
雖然上述三者在目標(biāo)開發(fā)者上存在一定區(qū)別,但從應(yīng)用的BizDevOps一體化角度看,低代碼的目標(biāo)開發(fā)者囊括了純代碼與無代碼的目標(biāo)開發(fā)者,其優(yōu)勢(shì)在于:可以將開發(fā)工作進(jìn)行了重新劃分,將原本“專業(yè)開發(fā)者”的工作分成三個(gè)部分,分別由“低代碼平臺(tái)”“公民開發(fā)者”和“專業(yè)開發(fā)者”分別負(fù)責(zé),在擴(kuò)大應(yīng)用開發(fā)勞動(dòng)力的同時(shí),也能有效發(fā)揮、整合各自的專業(yè)優(yōu)勢(shì)。
04從應(yīng)用場景看三者的區(qū)別與聯(lián)系
1.純代碼的應(yīng)用場景
純代碼的編碼靈活性高,開發(fā)者專業(yè)化程度高,因此,純代碼開發(fā)在各行業(yè)領(lǐng)域下通用,沒有特別的限制,尤其是針對(duì)復(fù)雜的、個(gè)性化的業(yè)務(wù)決策層應(yīng)用,如業(yè)務(wù)邏輯復(fù)雜、安全性要求高的領(lǐng)域,是純代碼最擅長的領(lǐng)域。
2.無代碼的應(yīng)用場景
無代碼的編碼靈活性完全取決于平臺(tái)提供的“數(shù)字化資產(chǎn)”數(shù)量和質(zhì)量,開發(fā)者都是公民開發(fā)者,實(shí)際應(yīng)用中,每個(gè)無代碼平臺(tái)都有各自的領(lǐng)域特色,直接決定了無代碼開發(fā)只能專注個(gè)別領(lǐng)域,尤其是針對(duì)簡單的、通用的、輕量化的業(yè)務(wù)執(zhí)行層應(yīng)用,如表單、視圖、統(tǒng)計(jì)、角色權(quán)限、報(bào)表、流程管理,是無代碼開發(fā)最擅長的領(lǐng)域。
3.低代碼的應(yīng)用場景
低代碼兼具了無代碼和純代碼的技術(shù)特點(diǎn),開發(fā)者是“專業(yè)開發(fā)者和公民開發(fā)者的融合團(tuán)隊(duì)”,因此,低代碼平臺(tái)具備專業(yè)領(lǐng)域通用的特點(diǎn),尤其是針對(duì)不太復(fù)雜的業(yè)務(wù)管理層應(yīng)用,如供應(yīng)鏈管理系統(tǒng)、客戶與訂單管理系統(tǒng)、線上商城、OA、CRM等,是低代碼開發(fā)最擅長的領(lǐng)域。
4.應(yīng)用場景的區(qū)別與聯(lián)系
雖然上述三者在應(yīng)用場景上存在一定區(qū)別,但是從各自擅長的領(lǐng)域來看,決策層應(yīng)用適合純代碼開發(fā),管理層應(yīng)用適合低代碼開發(fā),執(zhí)行層適合無代碼開發(fā),各有所長,互為補(bǔ)充。越簡單的應(yīng)用,越契合低代碼和無代碼;越復(fù)雜的應(yīng)用,越契合純代碼。
同時(shí),由于低代碼、無代碼的應(yīng)用更偏企業(yè)中、集層,而這些應(yīng)用的需求量最大,所以可以得出如下判斷:低代碼能夠適用于大部分業(yè)務(wù)場景,如B2E類、B2B類和B2C類應(yīng)用。
05
從經(jīng)濟(jì)性看三者的區(qū)別與聯(lián)系
1.純代碼的經(jīng)濟(jì)性
從純代碼的專業(yè)的技術(shù)特征可以得出,純代碼開發(fā)的工作量相對(duì)最大,交付最慢,軟件開發(fā)周期最長,可達(dá)數(shù)月甚至數(shù)年,總開發(fā)成本最高,從幾百萬元到幾千萬元不等。
2.無代碼的經(jīng)濟(jì)性
從無代碼的專業(yè)的技術(shù)特征可以得出,純代碼開發(fā)的工作量相對(duì)最小,交付最快,軟件開發(fā)周期最短,按分鐘小時(shí)計(jì),總開發(fā)成本最低,部分小范圍的輕量級(jí)應(yīng)用的成本接近于0。
3.低代碼的經(jīng)濟(jì)性
從無代碼的專業(yè)的技術(shù)特征可以得出,低代碼開發(fā)的工作量適中,交付較快,軟件開發(fā)周期較短,總開發(fā)成本最低。調(diào)研表明,使用低代碼搭建業(yè)務(wù)邏輯簡單的基礎(chǔ)應(yīng)用和初級(jí)業(yè)務(wù)系統(tǒng)平均僅需1周,搭建業(yè)務(wù)邏輯較復(fù)雜的初級(jí)工業(yè)系統(tǒng)僅需1~2周,大幅縮短開發(fā)時(shí)間。100人的研發(fā)團(tuán)隊(duì)通過低代碼開發(fā)應(yīng)用,平均1年縮短應(yīng)用開發(fā)時(shí)間92天,總節(jié)約成本20~35萬元。
4.經(jīng)濟(jì)性的區(qū)別與聯(lián)系
雖然上述三者在經(jīng)濟(jì)性上存在較大的區(qū)別,但因?yàn)楦髯缘膽?yīng)用場景不同,因此不能簡單地認(rèn)為經(jīng)濟(jì)性越好,對(duì)應(yīng)的開發(fā)方法就越好。最重要的是要將三者有機(jī)整合,在滿足需求的基礎(chǔ)上,發(fā)揮各自在經(jīng)濟(jì)上的優(yōu)勢(shì),使應(yīng)用開發(fā)整體的經(jīng)濟(jì)性最優(yōu)。
06結(jié)語
本文從定義、技術(shù)特征、目標(biāo)開發(fā)者、應(yīng)用場景和經(jīng)濟(jì)性五個(gè)方面,分析了低代碼、純代碼和無代碼的區(qū)別和聯(lián)系,認(rèn)為在選擇代碼開發(fā)方式時(shí),要綜合考慮以下因素。
首先,考慮應(yīng)用場景。比如針對(duì)復(fù)雜度高、客戶化強(qiáng)的應(yīng)用,必須以純代碼的開發(fā)方式為主,兼顧低代碼或無代碼的開發(fā)方式。其次,考慮經(jīng)濟(jì)性。在滿足應(yīng)用場景要求的前提下,哪種方式的經(jīng)濟(jì)指標(biāo)越好,越應(yīng)該優(yōu)先采用。最后,再綜合考慮技術(shù)特征和開發(fā)者的因素。
總之,純代碼、低代碼和無代碼不是相互替代的關(guān)系,而是各有優(yōu)勢(shì),互為補(bǔ)充的關(guān)系。實(shí)際應(yīng)用中,要根據(jù)應(yīng)用場景的要求,取長補(bǔ)短,有效組合,發(fā)揮各自的優(yōu)勢(shì)。
來源:《網(wǎng)絡(luò)安全和信息化》雜志
作者:康世杰