異常錯誤無法回退:若沒有應用版本(běn)管理(lǐ),應用新需求發布上線出現錯誤時將無法恢(huī)複到之前的版本,隻能手工修改回去,整個過(guò)程(chéng)耗時長,容易出錯,會(huì)中斷(duàn)業務運行;
誤操作時無法回滾:若(ruò)沒有記錄版本修改軌跡,誤操作時無法恢複到之前狀態,導致應用不可用;
Bug無法及時修複(fù):若不具備分支管理(lǐ),應用上線後(hòu)出現Bug時隻能在當前應用去解決,需要投入更多(duō)人力驗(yàn)證當(dāng)前應(yīng)用新增功能(néng),導致Bug無法及時修複,影響業務運營;
功能重複開發:若沒有分(fèn)支合並能力,Bug修複(fù)等需要在多個版本上逐一修複,造成重複開發,增加了企業成(chéng)本;
發布變更無法評估:若沒有版本比對,版本發布時候不清楚發布(bù)變更內容,增加了業務發布風險;
無法多人協同開發:若沒有細粒度的(de)版本控製能力,隻提供整個應用粒度的版本控製,一旦有人修改應用會鎖定整個應用,別人將無法修改(gǎi)應用,無法(fǎ)多人協同開發同一個應用。這會限製開發效率,延長(zhǎng)需求(qiú)交付周(zhōu)期。
既然版本管(guǎn)理對低代碼(mǎ)平台非常重要,那如何讓一個低代碼(mǎ)平台具備版本管(guǎn)理的相(xiàng)關能力。
傳(chuán)統開(kāi)發(fā)是使用git等(děng)版本控製係統,git能夠記錄一個或若幹文件內容變化,支持查閱(yuè)特(tè)定版本修訂情況,支持任何類(lèi)型(xíng)的(de)文件進行版本控製。傳統開發中程序員是通過git的IDE插件進行(háng)便捷的版本拉取、版本提(tí)交等(děng)版本操作。
低代碼平台的用戶(hù)大(dà)部分不是程序員,需要(yào)提供一個簡單易用的、集成到低(dī)代碼平台中版本管理工具。
首先低代碼平台模型設計必須符合一定要求,為後續版本控製和多人並行開發等提供基礎支撐。
需要設計應用、應用版本的相關實體,能夠記錄每(měi)個應用實(shí)例的信息,支持記錄每個實例的基礎信息、環境(jìng)信息、租(zū)戶信息、權限信息等,應用版本實例支持記錄應(yīng)用實(shí)例的每個版本記錄,便於後續(xù)版本發布、回退和(hé)回滾。
需要(yào)設計應用下的組件、組件版本相關實體,組件實體支持記錄組件類型(如模型、頁麵、服務、流程、接口等)、組件基礎信息、應用版本信息,組件版本相關實體可以記(jì)錄當前應用版本下(xià)的組件(jiàn)實例修改軌跡,支持回(huí)滾到任意版本。
基於版本相關實(shí)體模型,需要提供(gòng)簡單易用的版本控製管理。考慮(lǜ)用戶又不是程序員,所以版本(běn)比對和合並部分需要結合低代碼(mǎ)平台自身提供可視化工具,而非(fēi)直接低代碼的JSON文件(jiàn)比對。
版本存儲可以考慮采用git版本控製係統或則基於數據庫進行存儲。確保存儲和(hé)管理所有應用版本的曆史記錄。
需要提供可視化界(jiè)麵,支持創建多(duō)種類型的版本分支,支持創建開(kāi)發分支、熱補分支等。創建的分支(zhī)可以獨立進行開發,不影響原有分支。
需要提(tí)供可視化界麵(miàn),支持開發完、測試好的分支版本進行封版,封版後作(zuò)為生產版本或主幹版本。
對組件進行修改時候(hòu),每次修改都可以提交為一個組件(jiàn)版本軌跡,組件的(de)版本軌跡可以回滾到任意版本。若誤操作(zuò)時可以回滾到上一個版本軌跡即可。
需要提供結合低代碼平(píng)台元數據相關的可視化的版本比對工具,支持按應用組件分類可視化展示版(bǎn)本差異,支持展示出各類組件的新(xīn)增、修改、刪除的變化,對於修(xiū)改的組件,可以進一步比對(duì)兩個組件版(bǎn)本的差異內容,最好能提供組件(jiàn)內元素修改差異比對。以国产亚洲熟妇在线视频科技靈犀平台為例,可(kě)以提供可視化(huà)的版本比對工具:

版本的差異可視化比對:按組(zǔ)件分類進(jìn)行展示

某類組件差異:按組件新增、修改、刪除可視化分類展示

單個組件差異:修改的組件可以比對內部元(yuán)素(sù)差異

組件元素差異:可比對元素內容差異
對(duì)於修複的(de)Bug等熱補分支或特性分支,提供自動合並工具,對於無(wú)衝突部分可(kě)以自動合並到開發(fā)分支,對於有衝突部(bù)分,提供仲裁機製,由應用擁有者或應用管理員進行仲裁(cái)。
需要記錄應用的版本和組件版本(běn)的曆史,記錄對應(yīng)的修(xiū)改人、修改時間、修改內容等信息。
除了基礎上的版本控製管理,為支持多人協同開發,需要再低代碼應用組件化和元數據的基礎上,提供組件實例粒度鎖定機製來實現多人(rén)協(xié)同開發,鎖定模式需要考慮鎖定機製、通知機製、解鎖能力、合(hé)並處理等。
鎖定(dìng)機製可以根據用戶的操作自(zì)動觸發鎖定。例如,當用戶打開某個組件進行編輯時,係(xì)統自動為該組件加樂觀鎖,若想避免衝突可以直接加(jiā)悲觀鎖;若用戶進行了(le)長時間或高頻次(cì)的編輯操(cāo)作,係統(tǒng)可自動升級為悲觀鎖(suǒ),防止其他用戶意外覆蓋其更改。
通(tōng)知機製要考(kǎo)慮鎖定提示和解鎖提示。用戶嚐試編輯已被其他用戶鎖定的資源時,係統應立即給出鎖定提(tí)示,告(gào)知用戶該資源當前被(bèi)誰鎖定以及鎖定時間。當鎖被釋放時,也進行相應通知,確保用戶及時了解資源狀態。
提供實時或接近實時的預覽功(gōng)能,可拉取(qǔ)最(zuì)新的版本提交(jiāo),讓開發者能即時看到同伴的更改提交(jiāo)的效果。
要提供(gòng)鎖定信息和解鎖處理。提供界麵展示當前所有(yǒu)被鎖(suǒ)定的資(zī)源及(jí)其鎖定信息(如鎖定者(zhě)、鎖定時間、鎖類型等),也提供鎖定者或其他(tā)具有相應權限的(de)用戶手動解鎖的功能。同時,係(xì)統支持(chí)對於長時間未釋放的鎖支持發送(sòng)提醒或強製解鎖處(chù)理。
采用(yòng)樂觀(guān)鎖機製會出現多(duō)人修改衝突,需要通過版本控製管理的(de)比(bǐ)對和合並(bìng)工具進行(háng)衝突的合並處理,衝突由應用管理員或特定角(jiǎo)色進行(háng)裁決。若采用悲觀鎖機製,則不會出(chū)現衝突問題。
為(wéi)更好評估組件變更影響和版本發布影響 ,還需要(yào)提供組(zǔ)件關係分析能力。IDE開發時IDE提供類關係分析能力。低代(dài)碼平台也需要提供類似能力,需要由低代碼平台根據各自(zì)元數據提供組件關(guān)係分析工具。
其實應用產物的JSON文件記錄了相關組件關係(xì),低代碼(mǎ)平台分析JSON文件可(kě)生成組件依(yī)賴關係或血緣關係,關係可考慮圖數據庫存儲,再提供可視化展示,就可以清晰展示(shì)影響。並可以在這個基礎上進一步考慮自動校驗和自動糾正能力。
可根(gēn)據應用的JSON文(wén)件分析出組件的依賴關係,並提供(gòng)可視化展示,可更加直觀評估變更組件的影響和風險,可根據依賴關係評(píng)估(gū)當前修改影響(xiǎng)到的相(xiàng)關組件。技術層麵(miàn)可以引入圖數據庫技術存儲關係。以国产亚洲熟妇在线视频靈(líng)犀開發平台為例,提供血緣(yuán)關係分析:

組件血緣關係:展示組件引用和被引用的關係
根據組(zǔ)件依賴關係,對每個組件屬性修改時,可觸發進行自動校驗,比如(rú)服務入參新增(zēng),可以自動校驗服(fú)務調用方需要增加(jiā)參數映射(shè)。
根據自動校驗出的錯誤,可提供自動糾錯功能,可以(yǐ)自動修訂錯誤。
當然,上(shàng)述隻是低代碼管理的主要能力,其(qí)實還需要考慮應用配置(zhì)數據、腳本、文檔等管(guǎn)理(lǐ),還需要考慮低代碼的發布工具等。版本管理能力可以讓低代碼開發質量更高(gāo),開發效率更高,開發場景覆蓋更廣,開發團隊組織更靈活,成為企業數智化轉型(xíng)的助推器。