異常錯誤無法回退:若沒有應用版本管理,應用新需求發布上線出現錯誤時將無法恢復到之前的版本,只能手工修改回去,整個過程耗時長,容易出錯,會中斷業務運行;
誤操作時無法回滾:若沒有記錄版本修改軌跡,誤操作時無法恢復到之前狀態,導致應用不可用;
Bug無法及時修復:若不具備分支管理,應用上線后出現Bug時只能在當前應用去解決,需要投入更多人力驗證當前應用新增功能,導致Bug無法及時修復,影響業務運營;
功能重復開發:若沒有分支合并能力,Bug修復等需要在多個版本上逐一修復,造成重復開發,增加了企業成本;
發布變更無法評估:若沒有版本比對,版本發布時候不清楚發布變更內容,增加了業務發布風險;
無法多人協同開發:若沒有細粒度的版本控制能力,只提供整個應用粒度的版本控制,一旦有人修改應用會鎖定整個應用,別人將無法修改應用,無法多人協同開發同一個應用。這會限制開發效率,延長需求交付周期。
既然版本管理對低代碼平臺非常重要,那如何讓一個低代碼平臺具備版本管理的相關能力。
傳統開發是使用git等版本控制系統,git能夠記錄一個或若干文件內容變化,支持查閱特定版本修訂情況,支持任何類型的文件進行版本控制。傳統開發中程序員是通過git的IDE插件進行便捷的版本拉取、版本提交等版本操作。
低代碼平臺的用戶大部分不是程序員,需要提供一個簡單易用的、集成到低代碼平臺中版本管理工具。
首先低代碼平臺模型設計必須符合一定要求,為后續版本控制和多人并行開發等提供基礎支撐。
需要設計應用、應用版本的相關實體,能夠記錄每個應用實例的信息,支持記錄每個實例的基礎信息、環境信息、租戶信息、權限信息等,應用版本實例支持記錄應用實例的每個版本記錄,便于后續版本發布、回退和回滾。
需要設計應用下的組件、組件版本相關實體,組件實體支持記錄組件類型(如模型、頁面、服務、流程、接口等)、組件基礎信息、應用版本信息,組件版本相關實體可以記錄當前應用版本下的組件實例修改軌跡,支持回滾到任意版本。
基于版本相關實體模型,需要提供簡單易用的版本控制管理??紤]用戶又不是程序員,所以版本比對和合并部分需要結合低代碼平臺自身提供可視化工具,而非直接低代碼的JSON文件比對。
版本存儲可以考慮采用git版本控制系統或則基于數據庫進行存儲。確保存儲和管理所有應用版本的歷史記錄。
需要提供可視化界面,支持創建多種類型的版本分支,支持創建開發分支、熱補分支等。創建的分支可以獨立進行開發,不影響原有分支。
需要提供可視化界面,支持開發完、測試好的分支版本進行封版,封版后作為生產版本或主干版本。
對組件進行修改時候,每次修改都可以提交為一個組件版本軌跡,組件的版本軌跡可以回滾到任意版本。若誤操作時可以回滾到上一個版本軌跡即可。
需要提供結合低代碼平臺元數據相關的可視化的版本比對工具,支持按應用組件分類可視化展示版本差異,支持展示出各類組件的新增、修改、刪除的變化,對于修改的組件,可以進一步比對兩個組件版本的差異內容,最好能提供組件內元素修改差異比對。以浩鯨科技靈犀平臺為例,可以提供可視化的版本比對工具:

版本的差異可視化比對:按組件分類進行展示

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

單個組件差異:修改的組件可以比對內部元素差異

組件元素差異:可比對元素內容差異
對于修復的Bug等熱補分支或特性分支,提供自動合并工具,對于無沖突部分可以自動合并到開發分支,對于有沖突部分,提供仲裁機制,由應用擁有者或應用管理員進行仲裁。
需要記錄應用的版本和組件版本的歷史,記錄對應的修改人、修改時間、修改內容等信息。
除了基礎上的版本控制管理,為支持多人協同開發,需要再低代碼應用組件化和元數據的基礎上,提供組件實例粒度鎖定機制來實現多人協同開發,鎖定模式需要考慮鎖定機制、通知機制、解鎖能力、合并處理等。
鎖定機制可以根據用戶的操作自動觸發鎖定。例如,當用戶打開某個組件進行編輯時,系統自動為該組件加樂觀鎖,若想避免沖突可以直接加悲觀鎖;若用戶進行了長時間或高頻次的編輯操作,系統可自動升級為悲觀鎖,防止其他用戶意外覆蓋其更改。
通知機制要考慮鎖定提示和解鎖提示。用戶嘗試編輯已被其他用戶鎖定的資源時,系統應立即給出鎖定提示,告知用戶該資源當前被誰鎖定以及鎖定時間。當鎖被釋放時,也進行相應通知,確保用戶及時了解資源狀態。
提供實時或接近實時的預覽功能,可拉取最新的版本提交,讓開發者能即時看到同伴的更改提交的效果。
要提供鎖定信息和解鎖處理。提供界面展示當前所有被鎖定的資源及其鎖定信息(如鎖定者、鎖定時間、鎖類型等),也提供鎖定者或其他具有相應權限的用戶手動解鎖的功能。同時,系統支持對于長時間未釋放的鎖支持發送提醒或強制解鎖處理。
采用樂觀鎖機制會出現多人修改沖突,需要通過版本控制管理的比對和合并工具進行沖突的合并處理,沖突由應用管理員或特定角色進行裁決。若采用悲觀鎖機制,則不會出現沖突問題。
為更好評估組件變更影響和版本發布影響 ,還需要提供組件關系分析能力。IDE開發時IDE提供類關系分析能力。低代碼平臺也需要提供類似能力,需要由低代碼平臺根據各自元數據提供組件關系分析工具。
其實應用產物的JSON文件記錄了相關組件關系,低代碼平臺分析JSON文件可生成組件依賴關系或血緣關系,關系可考慮圖數據庫存儲,再提供可視化展示,就可以清晰展示影響。并可以在這個基礎上進一步考慮自動校驗和自動糾正能力。
可根據應用的JSON文件分析出組件的依賴關系,并提供可視化展示,可更加直觀評估變更組件的影響和風險,可根據依賴關系評估當前修改影響到的相關組件。技術層面可以引入圖數據庫技術存儲關系。以浩鯨靈犀開發平臺為例,提供血緣關系分析:

組件血緣關系:展示組件引用和被引用的關系
根據組件依賴關系,對每個組件屬性修改時,可觸發進行自動校驗,比如服務入參新增,可以自動校驗服務調用方需要增加參數映射。
根據自動校驗出的錯誤,可提供自動糾錯功能,可以自動修訂錯誤。
當然,上述只是低代碼管理的主要能力,其實還需要考慮應用配置數據、腳本、文檔等管理,還需要考慮低代碼的發布工具等。版本管理能力可以讓低代碼開發質量更高,開發效率更高,開發場景覆蓋更廣,開發團隊組織更靈活,成為企業數智化轉型的助推器。