[]
type=info
本頁面中以下內(nèi)容均針對“模型驅(qū)動的低代碼平臺”,可能不適用于部分“表單驅(qū)動的低代碼平臺”。
軟件開發(fā)的本質(zhì),是將現(xiàn)實中的問題搬到計算機(jī)里,借助計算機(jī)的能力來解決。承擔(dān)這項工作的開發(fā)者,需要對“現(xiàn)實中的問題”(業(yè)務(wù))和“計算機(jī)的能力”(技術(shù))有充分的了解。相比于業(yè)務(wù)知識學(xué)習(xí),技術(shù)能力的培養(yǎng)投入更大,所以,雖然業(yè)務(wù)開發(fā)者也能參與到低代碼開發(fā)中,但有較強(qiáng)技術(shù)能力的IT技術(shù)人員長期以來都是軟件開發(fā)的主力軍。進(jìn)入低代碼時代后,IT技術(shù)人員依然是軟件開發(fā)的主力,也是低代碼平臺的主要用戶群體。低代碼技術(shù)在現(xiàn)有軟件工程方法論的基礎(chǔ)上,使用可視化和代碼自動生成技術(shù),減少了大量重復(fù)性工作,讓IT技術(shù)人員將精力集中在更具創(chuàng)造性的領(lǐng)域,通過更快的交付速度,更智能化的軟件應(yīng)用,顯著提升最終用戶的滿意度。
這里的IT技術(shù)人員是與“業(yè)務(wù)開發(fā)者”相對的概念,包含但不限于程序員,特指在企業(yè)或信息化提供商中,本職工作為企業(yè)信息化相關(guān)的技術(shù)人員。IT技術(shù)人員主要集中在企業(yè)信息化部門和為企業(yè)提供信息化服務(wù)(如外包開發(fā)、系統(tǒng)集成等)的軟件公司中,典型崗位有項目經(jīng)理、架構(gòu)師、程序員、測試人員、實施和運維人員、DevOps等。
整體而言,IT技術(shù)人員具備以下特征:
具備技能:通常具有計算機(jī)相關(guān)的教育背景,或通過自學(xué)的方式掌握了一定的IT技能(如編程語言、數(shù)據(jù)庫管理、配置管理、系統(tǒng)管理等)
考核指標(biāo):能否保質(zhì)保量地滿足本單位或客戶的信息化需求是核心指標(biāo)
學(xué)習(xí)意愿:需要緊跟技術(shù)發(fā)展趨勢,跟隨團(tuán)隊和企業(yè)技術(shù)決策,及時更新技術(shù)能力
在進(jìn)入低代碼時代之前,各崗位的IT技術(shù)人員均已掌握了軟件開發(fā)全生命周期所需的部分技術(shù),通過簡單的學(xué)習(xí),這些IT技術(shù)人員均可轉(zhuǎn)型為低代碼開發(fā)者,以團(tuán)隊成員或個人開發(fā)者的身份構(gòu)建軟件應(yīng)用。
當(dāng)前崗位 | 與低代碼開發(fā)者的 匹配程度 | 需求 理解 ● | 架構(gòu) 設(shè)計 | 數(shù)據(jù)庫 設(shè)計 ○ | 界面交 互設(shè)計 △ | 數(shù)據(jù)庫 開發(fā) △ | 前后端 開發(fā) | 項目 管理 △ | 系統(tǒng) 管理 | 說明 |
---|---|---|---|---|---|---|---|---|---|---|
架構(gòu)師 | ※※※※※ | √ | √ | √ | √ | √ | 架構(gòu)師不但適合轉(zhuǎn)型為低代碼開發(fā)者,更適合成為低代碼技術(shù)專家,為多個團(tuán)隊提供技術(shù)支持 | |||
項目經(jīng)理 (乙方) | ※※※※※ | √ | √ | √ | 乙方項目經(jīng)理通常具有計算機(jī)的教育背景,學(xué)習(xí)數(shù)據(jù)庫設(shè)計和開發(fā)相對較容易,可以做到“開發(fā)管理一肩挑” | |||||
項目經(jīng)理 (甲方) | ※※※※ | √ | √ | 甲方項目經(jīng)理通常缺乏項目管理經(jīng)驗,需要補(bǔ)全短板才能確保低代碼開發(fā)有序展開 | ||||||
程序員 | ※※※※ | (部分) | (部分) | √ | √ | 對于程序員來說,低代碼不過是一個新的開發(fā)語言和工具,要想發(fā)揮低代碼的最大價值,需要提升需求分析能力 | ||||
實施和運 維人員 | ※※※ | √ | √ | 適合運維人員的轉(zhuǎn)型需要學(xué)習(xí)需求分析、數(shù)據(jù)庫設(shè)計知識,可行,但難度相對較高 | ||||||
DevOps | ※※ | √ | ||||||||
測試人員 | ※ | (部分) |
●:低代碼開發(fā)者的必備技能;○:低代碼開發(fā)者的重要技能;△:部分場景下低代碼開發(fā)者的需要技能
對于軟件開發(fā)這種成熟的生產(chǎn)模式來說,任何一項新技術(shù)的引入都需要投入學(xué)習(xí)和切換的成本,在計算該技術(shù)能帶來的價值時,則需要將這個成本減掉。從編碼開發(fā)到低代碼開發(fā),IT技術(shù)團(tuán)隊,特別是開發(fā)團(tuán)隊投入成本不僅限于學(xué)習(xí)該技術(shù)花費的時間,還需考慮配套的工具和方法論的學(xué)習(xí)和切換成本:
學(xué)習(xí)低代碼開發(fā)工具的時間投入
學(xué)習(xí)低代碼平臺配套工具(如版本管理、CI/CD等)的時間投入
適應(yīng)項目管理方法的時間投入和風(fēng)險
而引入低代碼后,開發(fā)團(tuán)隊能獲取的收益也不僅限于開發(fā)工作量的降低,還有與之相伴的測試工作量降低和交付周期縮短,而交付周期縮短可以有效降低返工成本。
綜合上述低代碼的價值公式可以概括如下:
開發(fā)和測試的工作量減少 + 因交付更敏捷帶來的返工量減少 - 低代碼學(xué)習(xí)成本 - 配套工具學(xué)習(xí)成本 - 方法論切換成本 = 低代碼的價值
考慮到不同的低代碼平臺適用于不同的應(yīng)用場景,上述5個參數(shù)可能存在較大差異。從實踐上看,采用模型驅(qū)動的低代碼開發(fā)平臺開發(fā)項目規(guī)模大、復(fù)雜度高、技術(shù)要求嚴(yán)格的企業(yè)核心應(yīng)用時,低代碼帶來的收益顯著高于使用表單驅(qū)動的低代碼開發(fā)平臺構(gòu)建臨時性的簡單應(yīng)用。而后者更適合由業(yè)務(wù)人員而不是IT技術(shù)人員完成,以“解決有無問題”為目標(biāo)。
參數(shù) | 模型驅(qū)動低代碼(核心業(yè)務(wù)應(yīng)用) | 表單驅(qū)動低代碼(簡單應(yīng)用) |
---|---|---|
開發(fā)和測試的工作量減少 | 高 | 高 |
+ 因交付更敏捷帶來的返工量減少 | 高 | 低 - 返工工作量較低 |
- 低代碼學(xué)習(xí)成本 | 低 - 與編碼開發(fā)的概念和模式更接近 | 中 - 需要打破現(xiàn)有軟件開發(fā)思維 |
- 配套工具學(xué)習(xí)成本 | 低 - 可沿用現(xiàn)有工具 | 高 - 需重新考慮版本管理和DevOps流程 |
- 方法論切換成本 | 低 - 與軟件工程理論兼容 | 高 - 需重新設(shè)計團(tuán)隊協(xié)作和管理方式 |
= 低代碼的價值 | 高 | 低 |
詳細(xì)了解:低代碼平臺的技術(shù)原理;低代碼開發(fā)支撐軟件全生命周期
對于程序員來說,學(xué)習(xí)模型驅(qū)動的低代碼開發(fā)平臺和學(xué)習(xí)一項新的語言類似,都是將之前學(xué)習(xí)和實踐中積累下來的經(jīng)驗,套用到新的開發(fā)工具上。在適應(yīng)了低代碼開發(fā)平臺后,IT技術(shù)人員就能通過可視化的方式,大幅減少重復(fù)性的工作,比如增刪改查、頁面布局和樣式等,最終實現(xiàn)工作量的顯著下降。從相對低端的重復(fù)性工作中騰出精力,才能擴(kuò)寬職業(yè)發(fā)展的道路。在一個采用低代碼技術(shù)開發(fā)的團(tuán)隊中,IT技術(shù)人員的發(fā)展路徑主要有以下4條。
低代碼時代的技術(shù)專家與編碼開發(fā)的架構(gòu)師類似。如果對傳統(tǒng)編碼開發(fā)更感興趣,低代碼開發(fā)者可以持續(xù)鉆研編程擴(kuò)展,包括低代碼平臺的插件開發(fā)、外掛式Web API開發(fā)、軟硬件集成、數(shù)據(jù)庫調(diào)優(yōu)等,為公司提供技術(shù)支撐。成為技術(shù)專家,意味著開發(fā)工作從面向應(yīng)用需求,切換為專注于處理技術(shù)和集成方面的難題,為多個團(tuán)隊和項目提供技術(shù)保障。相比于沒有接觸過低代碼開發(fā)平臺的其他程序員,技術(shù)專家通常可以根據(jù)低代碼平臺的特點給出最有效的解決方案,并且能夠充分理解和照顧來自公司其他開發(fā)者的功能和體驗要求,降低溝通成本,為整個公司的軟件開發(fā)工作提效。
大多數(shù)采用低代碼開發(fā)模式的軟件公司和企業(yè)信息化部門對技術(shù)專家崗位的需求量較少。所以,這個路線對開發(fā)者自身的技術(shù)突破能力和持續(xù)學(xué)習(xí)能力有較強(qiáng)的要求。通常情況下,公司會優(yōu)先從編碼開發(fā)團(tuán)隊的架構(gòu)師中選擇學(xué)習(xí)能力強(qiáng)、對新技術(shù)敏感度高的人員擔(dān)任技術(shù)專家。
低代碼開發(fā)和編碼開發(fā)在項目管理和軟件生命周期上的方法論是一樣的。所以,低代碼開發(fā)團(tuán)隊一樣需要設(shè)置項目經(jīng)理的角色。考慮到低代碼時代有“設(shè)計即開發(fā)”的特點,項目經(jīng)理也需要具備使用低代碼平臺構(gòu)建可操作原型,甚至參與到具體開發(fā)工作的能力,這就為低代碼開發(fā)者轉(zhuǎn)型成為項目經(jīng)理提供了更有競爭力的條件。
相比于編碼開發(fā),數(shù)倍的生產(chǎn)力優(yōu)勢讓低代碼開發(fā)的團(tuán)隊規(guī)模更小,2-3人的微型團(tuán)隊就能具備編碼開發(fā)時代10人團(tuán)隊才有的軟件交付能力。更小的團(tuán)隊規(guī)模,讓公司能同時啟動更多的軟件開發(fā)項目,這就需要更多的項目經(jīng)理來保證需求溝通和開發(fā)管理的有效可控。所以,除了編碼開發(fā)團(tuán)隊的項目經(jīng)理之外,更多的開發(fā)者可以借助這一契機(jī),通過承擔(dān)更多項目管理工作,成為新的項目經(jīng)理。需要提示的是,項目經(jīng)理所需的管理知識已經(jīng)形成了成熟的體系,“自學(xué)成才”是完全可行的。
低代碼具備更快的迭代速度和更低的學(xué)習(xí)門檻,這使得很多公司開始讓業(yè)務(wù)人員深入?yún)⑴c到軟件開發(fā)中來。業(yè)務(wù)人員和IT技術(shù)人員一起,前者貢獻(xiàn)業(yè)務(wù)知識,而后者基于對計算機(jī)技術(shù)的理解,將其轉(zhuǎn)換為軟件。在不斷的交流中,有一部分業(yè)務(wù)人員因此掌握了軟件開發(fā)能力,也讓一些技術(shù)人員對業(yè)務(wù)流程和背后的原理有了更深刻的理解。所以,在幫助業(yè)務(wù)人員轉(zhuǎn)型為開發(fā)者的同時,技術(shù)人員也能成為業(yè)務(wù)專家,將軟件開發(fā)工作中培養(yǎng)的系統(tǒng)化、邏輯化思維帶到業(yè)務(wù)部門,為業(yè)務(wù)發(fā)展引入新動力。
低代碼開發(fā)的團(tuán)隊規(guī)模更小,一人身兼數(shù)職也是常態(tài),可以幫助開發(fā)者更快速地成長。在低代碼的助力下,一個人同時掌握需求分析、產(chǎn)品設(shè)計、開發(fā)、測試以及DevOps相關(guān)的技術(shù)能力的可能性大增。如果具備覆蓋軟件全生命周期的能力,再加上合適的時機(jī),“成為獨立開發(fā)者”也是一個值得考慮的選項。相比于編碼開發(fā),低代碼的開發(fā)效率足夠幫助獨立開發(fā)者建立起交付速度和成本上的優(yōu)勢。
Q: 使用低代碼開發(fā)出的系統(tǒng),性能會不會很差?
A: 就像.NET EntityFramework在某些特定場景下,生成的SQL語句性能不高一樣,低代碼平臺也無法保證每一個數(shù)據(jù)查詢的性能都得到極致優(yōu)化。所以,低代碼平臺會提供更完善的日志分析能力,幫你判斷性能瓶頸是否出現(xiàn)在數(shù)據(jù)庫訪問。如果是,可以選擇手寫SQL來有針對性的解決性能瓶頸,這就是為什么企業(yè)級低代碼平臺會提供直接執(zhí)行SQL的能力。在企業(yè)級應(yīng)用開發(fā)領(lǐng)域,這種情況的發(fā)生概率并不高。
Q: 低代碼開發(fā)出的系統(tǒng),耦合性是否過強(qiáng),導(dǎo)致后續(xù)維護(hù)困難?
A: 模型驅(qū)動的低代碼開發(fā)平臺采用了“數(shù)據(jù)結(jié)構(gòu)與業(yè)務(wù)邏輯分離”、“前后端分離”的模式,在耦合性與可維護(hù)性方面,與ASP.NET MVC(含EntityFramework),Spring Boot(含hibernate)的范式基本一致,在開發(fā)效率、運行性能和可維護(hù)性上找到一個平衡點,支撐企業(yè)級應(yīng)用開發(fā)。事實上,低代碼開發(fā)平臺將范式中的大量配置和編碼工作進(jìn)一步可視化,加強(qiáng)了框架對開發(fā)行為的約束。在項目實踐中,低代碼平臺可以幫助技術(shù)管理者更嚴(yán)格管控突破框架的開發(fā)工作(手寫代碼的總量更少,更易檢查),降低耦合性,提升可維護(hù)性。
Q: 低代碼開發(fā)出的系統(tǒng),是否易于測試?
A: 首先,更少的人工編碼意味著更少的Bug以及更低的測試工作量。除此之外,使用低代碼開發(fā)和使用Eclipse等IDE(含JUnit插件)的編碼開發(fā)在編譯檢查、自測、測試上的體驗基本相同。在 低代碼開發(fā)支撐軟件全生命周期 中,你可以詳細(xì)了解如何為低代碼開發(fā)構(gòu)建測試環(huán)境,實現(xiàn)CI/CD的。
Q: 低代碼開發(fā)是否意味著原來基于Git的敏捷項目管理機(jī)制無法繼續(xù)使用呢?
A: 不會的。低代碼開發(fā)同樣可以兼容Git的權(quán)限控制、版本管理和分支管理。就像Visual Studio內(nèi)置了git操作一樣,你也可以用低代碼平臺內(nèi)置的功能,在開發(fā)工具上直接完成簽入、簽出、版本管理等工作。所以,原有的敏捷開發(fā)方法論可以無縫應(yīng)用于低代碼開發(fā)。
Q: 能否將一個低代碼平臺上開發(fā)的應(yīng)用,遷移到其他的低代碼開發(fā)平臺上?
A: 就像.NET程序不能運行在JDK上,成熟的低代碼工具通常會提供強(qiáng)大的運行平臺,提供更高的處理性能、更全面的功能支撐,無法也不應(yīng)脫離使用。
Q:廠商停止服務(wù)后,應(yīng)用怎么維護(hù)?
A: 就像很多企業(yè)都有一些運行著老舊軟件的服務(wù)器一樣,選擇私有化部署和買斷式授權(quán)可確保開發(fā)平臺和基于該平臺開發(fā)的軟件能長期使用;如有必要,也能基于新的開發(fā)技術(shù),逐模塊替換這些老舊系統(tǒng),新老系統(tǒng)并行。