在數字化轉型的浪潮中,低代碼平臺以其快速響應業務需求、縮短開發周期的優勢,成為眾多企業實現數字化轉型的重要工具。然而,隨著業務的不斷迭代和復雜化,早期以“炫技”式突顯拖拽效果的服務編排逐漸暴露出效率低下、運維支持不足等問題。
想要解決這些問題可以從軟件開發的過程出發,探索服務編排功能的優化方向。
隨著產品的使用越來越廣,業務的不斷迭代,由于前期沒有很好的規劃服務編排的發展方向,現考慮如何做好運維、支持復雜的編排場景、實現統一校驗、統一數據采集等提升時,臃腫的代碼耗費了很大的改造成本。擁有可靠的技術架構才能夠產品走得更遠,以下是靈犀低代碼平臺提升后的服務編排工具的前端處理架構:

數據層:統一數據存儲,并提供不同維度的數據操作、數據初始化、數據轉換、數據計算等基礎數據操作,通過數據的標準化和服務化管理,實現數據的重用和共享,提高數據的利用價值和業務響應速度。數據庫(store)的數據變更會進行版本控制,記錄當前變化的補丁(patch)和反向補丁(inversePatch)?;谶@個特性很容易實現撤銷、回復、歷史回溯、歷史版本對比等功能,對于開發工具來講是必不可少的用戶體驗。
服務編排框架:通過數據處理器serviceProcessor進行服務實例化或者銷毀的操作,同時實現處理過程流程的標準化、業務處理插件的注冊和管理,以及擴展功能的定義和執行。日志調度器,主要記錄操作行為和數據變更的日志,在問題核查過程中開啟調試器能夠有效提升問題的核查效率。狀態訂閱器,通過對事件監聽、數據訂閱都做了統一管理,結合模塊注冊器的插件式設計,很好的實現數據與業務層的控制,又能做到高度解耦和快速響應,問題跟蹤效率、代碼復用度和性能方面都得到了提升。
視圖層:基于數據層的存儲優化和數據操作的封裝,最大化減少了組件層級嵌套的情況。當檢測到服務結構發生變化時,可以自動計算出變化的節點,局部調整布局,避免整個畫布重新渲染操作閃爍和抖動等不好的用戶體驗。通過使用Portal的方式共享狀態,同時使用懶加載和分片渲染,可以有效避免額外的性能開銷。
在可靠的引擎支持下,才有可能探索出更便捷、更貼合用戶操作體驗的設計方案。隨著項目支撐越來越多,表現出來兩個比較顯著的問題:一是開發過程中的干擾過多,主要面板僅用于展示圖形,而其他操作則需通過抽屜式菜單、推拉門和彈窗來完成,這導致了操作分散;二是操作過程掩蓋了服務邏輯,使得開發者在聯系上下文進行開發時思維受阻。隨著業務的不斷迭代,服務的二次開發和問題定位變得愈發重要。
改進理念基于以下幾點:
1)遵循二八原則,主要工作區域應能解決80%的開發內容,而僅將20%的輔助功能操作放在抽屜式菜單或推拉門中;
2)確保新功能開發、業務需求迭代、系統運維等關鍵開發環節都能得到充分的支持和優化。
整體布局設計如下:

左側綜合搜索區:該區域提供節點和參數的快速查找功能,并支持引用關系的可視化呈現。這一設計旨在幫助開發者在二次開發和問題核查過程中迅速定位所需信息,從而提升開發效率。
中間畫布區:此區域用于展示服務的整體邏輯。通過采用圖形引擎(如antv x6)實現拖拽功能, 使用Web Worker技術優化畫布邏輯計算,以確保即使在復雜場景下也能保持流暢的操作體。
右側配置區:該區域用于完成節點參數的詳細配置。該面板支持收起與展開操作,實現了與搜索區、畫布區這三個主要區域的有效聯動。通過一屏開發的設計,開發者可以更加方便地進行快速配置和修改操作。
在這種布局設計下,可以進一步豐富產品功能,以提升開發效率和用戶體驗。具體包括:

工具欄:增設了自動糾錯、撤回、恢復、不完整校驗以及歷史記錄對比等便捷操作功能。這些功能旨在減少開發過程中的錯誤和重復勞動,從而顯著提升開發效率。
綜合搜索區:支持根據節點或者參數、變量、腳本進行搜索和引用關系的呈現,這有助于開發者在復雜的服務編排中快速找到所需信息。
畫布區的節點展示:節點表達內容力求簡潔、清晰。在1440分辨率的屏幕上,能夠展示大約40個節點,使開發者能夠在一屏內概覽普通服務的整體邏輯。通過觀察畫布,開發者可以大致掌握30%的服務邏輯信息,即無需打開節點參數面板,也能基本了解服務的運行流程。
節點配置面板:提供節點快速查找、快速生成、快速配置等功能。這些功能有助于開發者快速找到所需節點并進行配置,提高配置效率。
此外,還可以提供更多便捷操作,包括批量參數轉換、批量賦值、我的修改、最近修改、最多修改、大中小屏自動適配等。這些功能的將進一步提升開發效率并優化用戶體驗。
一個卓越的服務編排功能,不僅為開發者提供流暢、高效的操作體驗,還需要考慮對業務功能迭代開發的考慮。隨著業務的發展,邏輯的復雜化,服務節點的數量會不斷增長,導致畫布變得難以閱讀和維護。通過提升編排邏輯的可讀性和重構能力,可以有效解決持續迭代所帶來的挑戰:
支持節點的折疊:當畫布中節點太多的情況下,非核心節點往往會成為閱讀過程中的干擾因素。通過引入折疊功能,用戶可以輕松隱藏這些節點,有效減少視覺雜亂,提升閱讀和信息處理的效率。

支持大綱視圖展示:為了優化用戶體驗,提供另一種呈現方式,即依據廣泛的閱讀習慣,將服務邏輯以條理清晰的大綱結構進行展示。這一設計不僅便于理解,還支持用戶通過自由選擇不同的層級進行深入探索與展示,從而實現信息的靈活獲取與高效利用。

支持服務編排的可重構:可以通過兩種方式實現
1、服務內容的可復制粘貼:該功能極大地提升了工作效率,允許用戶輕松地將既有服務的通用邏輯快速遷移至新建服務中。相較于重新編寫相同邏輯,節點復制機制顯著降低了重復勞動。在實現框選復制時,需要關注以下兩點:
1)智能內容篩選:智能計算并篩選出符合條件的節點范圍,確保僅包含有上下文關聯、處于同一邏輯分支內的節點被選中。對于無直接關聯或跨分支的節點,要自動排除,避免無效復制。
2)DSL復制粘貼:復制操作并非簡單的圖片復制,而是利用全局數據存儲(如redux),將選中節點的DSL(領域特定語言)數據保存,以實現不同服務之間的安全復制粘貼。

2、服務抽象:通過一鍵操作,輕松將邏輯提煉并自動生成為一個全新的服務,從而實現公共邏輯的抽象。服務的抽象過程實現主要包括以下幾個高效步驟:
1)精準節點框選:利用便捷的框選功能,可以精確選定包含公共邏輯的節點集合。
2)一鍵抽象生成:點擊“抽象”按鈕,系統自動將選中的節點封裝成一個獨立的新服務。
3)參數映射:系統自動識別并提取選中節點所依賴的參數,將其作為新服務的輸入參數。
4)原節點移除:創建新服務后,原服務中對應的選中節點將被自動刪除。
5)服務引用自動集成:系統在原服務中自動生成一個服務引用節點,調用新生成的服務,并根據原節點的輸入參數自動賦值,實現無縫銜接。
6)依賴關系自動更新:系統智能識別并自動替換原服務中依賴于選中節點的引用,使用新服務的輸出參數,確保整個服務流程的邏輯連貫性和數據一致性。

首先來分析一下汽車行業的生產效率情況:一輛汽車的平均零部件平臺在一萬個左右,如果從0到1開始生產一輛汽車,需要約40000小時,大概是3-5年。但經過行業的發展,技術的沉淀,生產的標準化,目前很多先進的汽車廠商生產流水線只需要幾分鐘就能完成一輛汽車的組裝。
如此驚人的飛躍,讓不少行業紛紛效仿。服務編排跟汽車的組裝其實非常相像,通過原子節點編排成一個個服務。再由服務組裝成一個個通用的業務領域組件,最后僅需要通過業務組件進行簡單的組裝即可快速完成應用邏輯的開發,低代碼開發的效率,也將帶來質的飛躍。

在此過程中,一個至關重要的環節是行業組件的沉淀。這意味著需要根據行業特性,抽象出通用的業務流程,并依據組件的標準和規范,將這些流程封裝成可復用的業務場景組件。目前,已經有一些行業開始朝著這個方向邁進。