駁“低代碼開發(fā)取代程序員”論 為什么專業(yè)開發(fā)者也需要低代碼?
低代碼又火了。
近幾年,騰訊、阿里、百度等互聯(lián)網(wǎng)大廠紛紛入局,國內(nèi)外低代碼平臺(tái)融資動(dòng)輒數(shù)千萬甚至數(shù)億,以及伴隨著熱度而來的巨大爭議……無不說明“低代碼”的火爆。
事實(shí)上,低代碼并非新概念,它可以追溯到上世紀(jì)80年代的“第四代編程語言”。2014年,F(xiàn)orrester正式提出低代碼的概念。低代碼是一種軟件開發(fā)技術(shù),衍生于軟件開發(fā)的高級(jí)語言, 讓使用者通過可視化的方式,以更少的編碼,更快速地構(gòu)建和交付應(yīng)用軟件,全方位降低軟件的開發(fā)成本 。與傳統(tǒng)軟件開發(fā)方式相比,低代碼開發(fā)平臺(tái)整合了軟件開發(fā)和部署所需的 IDE(集成開發(fā)環(huán)境)、服務(wù)器和數(shù)據(jù)庫管理工具,覆蓋軟件開發(fā)的全生命周期,我們可以將其理解為 Visual Studio + IIS + SQL Management Studio(.NET 技 術(shù))或 Eclipse + Tomcat + MySQL Workbench(Java 技術(shù))的組合。
編碼更少、交付更快、成本更低,還覆蓋軟件開發(fā)全生命周期,怎么看低代碼都可以說是不錯(cuò)的軟件開發(fā)工具。那么,它又為什么引發(fā)爭議,甚至被其主要用戶群體之一——程序員所詬病呢?“低代碼開發(fā)會(huì)取代程序員” 這一觀點(diǎn)大行其是,它說得對(duì)嗎?
為什么低代碼引起專業(yè)開發(fā)者的反感?
技術(shù)浪潮引發(fā)巨大變革,也帶來了無數(shù)“取代論”,比如機(jī)器翻譯是否取代人類翻譯、機(jī)器人記者是否取代人類記者,以及低代碼開發(fā)是否取代程序員。
低代碼雖然火爆,但程序員對(duì)此抱有不同的心態(tài):
- 輕視:低代碼技術(shù)的諸多優(yōu)勢只是炒作,該技術(shù)更適合初學(xué)者,解決不了復(fù)雜的技術(shù)問題;
- 恐懼:擔(dān)心被低代碼取代;
- 抵觸:低代碼開發(fā)平臺(tái)能夠覆蓋所有需求嗎;大量封裝組件使得低代碼開發(fā)平臺(tái)更像一個(gè)黑盒子,可能導(dǎo)致難以debug、難以修改和迭代升級(jí)等技術(shù)問題;低代碼開發(fā)平臺(tái)配置有大量組件,簡單的拖拉拽動(dòng)作即可完成大量開發(fā)工作,程序員不再需要厲害的技術(shù)能力。
那么,上述理由真的站得住腳嗎?我們一一來看。
低代碼的門檻真的低嗎?
低代碼開發(fā)過程常被比作拼積木:像拼搭積木一樣,以可視化的方式,通過拖拉拽組件快速開發(fā)出數(shù)據(jù)填報(bào)、流程審批等應(yīng)用程序,滿足企業(yè)里比較簡單的辦公需求。
但這并不意味著低代碼開發(fā)平臺(tái)只能做到這些。
Gartner在2020年9月發(fā)布的《企業(yè)級(jí)低代碼開發(fā)平臺(tái)的關(guān)鍵能力報(bào)告》(Critical Capabilities for Enterprise Low-Code Application Platforms)中,列舉了低代碼的11項(xiàng)關(guān)鍵能力。
圖源: https://www.gartner.com/en/do...
這里我們著重來看其中三項(xiàng)關(guān)鍵能力。
- 數(shù)據(jù)建模和管理:該指標(biāo)就是通常所講的“ 模型驅(qū)動(dòng) ”。相比于表單驅(qū)動(dòng),模型驅(qū)動(dòng)能夠提供滿足數(shù)據(jù)庫設(shè)計(jì)范式的數(shù)據(jù)模型設(shè)計(jì)和管理能力。開發(fā)的應(yīng)用復(fù)雜度越高,系統(tǒng)集成的要求越高,這個(gè)能力就越關(guān)鍵。
- 流程和業(yè)務(wù)邏輯: 流程應(yīng)用與業(yè)務(wù)邏輯開發(fā)能力和效率 。這個(gè)能力有兩層,第一層是指使用該低代碼開發(fā)平臺(tái)能否開發(fā)出復(fù)雜的工作流和業(yè)務(wù)處理邏輯;第二層是開發(fā)這些功能時(shí)的便利性和易用性程度有多高。
- 接口和集成: 編程接口與系統(tǒng)集成能力 。為了避免“數(shù)據(jù)孤島”現(xiàn)象,企業(yè)級(jí)應(yīng)用通常需要與其他系統(tǒng)進(jìn)行集成,協(xié)同增效。此時(shí),內(nèi)置的集成能力和編程接口就變得至關(guān)重要。除非確認(rèn)可預(yù)期的未來中,項(xiàng)目不涉及系統(tǒng)集成和擴(kuò)展開發(fā),開發(fā)者都應(yīng)該關(guān)注這個(gè)能力。
這些關(guān)鍵能力表明 低代碼平臺(tái)在建模與邏輯方面具備較強(qiáng)的能力,而接口和集成能力可使專業(yè)開發(fā)人員完成低代碼無法實(shí)現(xiàn)的部分,通過低代碼與專業(yè)代碼開發(fā)的協(xié)作實(shí)現(xiàn)復(fù)雜應(yīng)用的開發(fā) 。在涉及高價(jià)值或復(fù)雜的核心業(yè)務(wù)時(shí),專業(yè)開發(fā)人員需要理解業(yè)務(wù)需求,厘清業(yè)務(wù)邏輯。從這個(gè)層面上看,低代碼開發(fā)的門檻并不低。事實(shí)也是如此:海比研究在《2021 年中國低代碼/無代碼市場研究報(bào)告》中提到,截至 2020 年底,技術(shù)人員在低代碼使用者中的比例超 75%,占主體地位。
低代碼什么都能做嗎?
程序員的工作圍繞開發(fā)需求展開。在選擇開發(fā)工具時(shí),程序員通??紤]的首要問題是:這款工具能否覆蓋所有需求?如果需求增加或變更,該工具是否支持相關(guān)操作?這些問題同樣適用于低代碼平臺(tái)的選型。
在實(shí)際項(xiàng)目交付過程中,如果我們僅可以滿足99%的需求,另外1%的需求滿足不了,那么真實(shí)用戶大概率是不會(huì)買單的。因此,在評(píng)估低代碼產(chǎn)品的時(shí)候,我們一定要保證該平臺(tái)可以支撐所有系統(tǒng)模塊類型的開發(fā),同時(shí)也要具備足夠的擴(kuò)展性,確保使用純代碼開發(fā)出的模塊能夠與低代碼模塊進(jìn)行無縫集成,而這離不開編程接口。
以國內(nèi)主流低代碼開發(fā)平臺(tái)活字格為例。該平臺(tái)提供開箱即用的開發(fā)組件,同時(shí)為系統(tǒng)的各個(gè)分層均提供編程擴(kuò)展能力,以滿足企業(yè)級(jí)應(yīng)用開發(fā)對(duì)擴(kuò)展性的高要求。借助分層編程接口,開發(fā)者可以用純代碼的方式實(shí)現(xiàn)新增功能,無需受限于低代碼開發(fā)平臺(tái)的版本和現(xiàn)有功能。
圖示:活字格的編程擴(kuò)展能力
當(dāng)然,就具體應(yīng)用領(lǐng)域而言,低代碼開發(fā)平臺(tái)也有其擅長和不擅長的地方。目前,低代碼開發(fā)更多地被應(yīng)用于2B企業(yè)應(yīng)用開發(fā),而對(duì)于用戶量特大的頭部互聯(lián)網(wǎng)應(yīng)用、對(duì)算法和復(fù)雜數(shù)據(jù)結(jié)構(gòu)要求較高的應(yīng)用,低代碼平臺(tái)則不太適合。
低代碼開發(fā)不可控?
“低代碼開發(fā)平臺(tái)是個(gè)黑盒子,內(nèi)部出問題無法排查和解決。開發(fā)過程中發(fā)現(xiàn)有問題怎么辦?迭代升級(jí)難以實(shí)現(xiàn)怎么辦?”很多程序員會(huì)有這種疑惑。
但我們需要注意的是, 低代碼開發(fā)平臺(tái)本質(zhì)上仍是軟件開發(fā)工具 ,用戶模型與軟件開發(fā)周期支持是其關(guān)鍵能力之一。也就是說,成熟的低代碼開發(fā)平臺(tái)具備軟件開發(fā)全生命周期所需的各項(xiàng)功能,從而大大簡化開發(fā)者的技術(shù)棧,進(jìn)一步提高開發(fā)效率。
具體而言,在面對(duì)頻繁的需求變更、棘手的問題排查時(shí),低代碼開發(fā)平臺(tái)引入了版本管理機(jī)制,從而更高效地進(jìn)行代碼審查、版本管理與協(xié)調(diào),以及軟件的迭代升級(jí)。至于debug,日志分析無疑是個(gè)好辦法。例如,活字格把執(zhí)行過程及細(xì)節(jié)以日志方式輸出,方便程序員高效debug。
對(duì)程序員而言,低代碼平臺(tái)是限制還是助力?
“低代碼”意味著更少的代碼。代碼都不怎么寫了,程序員又該怎么成長,怎么獲得職業(yè)成就感呢?
其實(shí)不然。
首先,開發(fā) ≠ 寫代碼。低代碼平臺(tái)可以減少大量重復(fù)工作,提升開發(fā)效率,把專業(yè)開發(fā)人員從簡單、重復(fù)的開發(fā)需求中解放出來,把精力投入到更有價(jià)值的事情上,比如精進(jìn)技術(shù)、理清業(yè)務(wù)邏輯。
其次,低代碼平臺(tái)的組件化和拖拽式配置降低了開發(fā)門檻,新手程序員能夠借助此類平臺(tái)快速入門,加速升級(jí)打怪;有經(jīng)驗(yàn)的程序員也有機(jī)會(huì)參與更多項(xiàng)目,甚至帶團(tuán)隊(duì),積累更多經(jīng)驗(yàn)值,實(shí)現(xiàn)快速成長。
結(jié)語
當(dāng)迷霧散盡,低代碼開發(fā)平臺(tái)重新露出高效率開發(fā)工具的本色時(shí),你會(huì)選擇它嗎?