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

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

左側(cè)綜合搜索區:該區(qū)域提供節點(diǎn)和參(cān)數的快速查找(zhǎo)功(gōng)能,並支持引用關係的可視化呈現。這一設計旨在幫(bāng)助開發者在二次開發和問題(tí)核查過程中迅速定位所需信息,從而提升開(kāi)發效率。
中間畫(huà)布區:此區域用於展示服(fú)務的整體邏輯。通過采用圖形引擎(如antv x6)實現拖拽功能, 使用Web Worker技術優化(huà)畫布邏輯計算,以確(què)保即使在複雜場景下也能保持(chí)流暢的操作體。
右側配置區:該區域用(yòng)於完成節點參數的詳細配置。該麵(miàn)板支持收起與展開操(cāo)作,實現了與搜(sōu)索區、畫布區這三個主要區(qū)域的(de)有效聯(lián)動。通過一屏開(kāi)發的設(shè)計,開發者(zhě)可以更加方便(biàn)地進行快速配置和修改操作。
在這種布局設計下,可以進一步豐富產品功能,以提升開發效率和用(yòng)戶體驗。具體包括:

工具欄:增設了自動糾錯、撤回、恢複、不完整(zhěng)校驗以及曆史記錄對比等便捷操作功能。這(zhè)些功能旨在減少(shǎo)開發過程中的錯誤和重複勞動(dòng),從而顯著提升開發效率。
綜合搜索區:支持根據節點或者參數、變量、腳本進行搜索和引(yǐn)用關(guān)係的呈現,這有(yǒu)助於開發者在複雜的服務編排中快速找到所需信息(xī)。
畫布區的(de)節點展示(shì):節點表達內容力求簡潔、清晰。在1440分辨率的屏幕上,能夠展示大約(yuē)40個節點,使開發者能夠在一屏內概覽普通服務的(de)整體邏輯。通過觀察畫布,開發者(zhě)可以大致掌握30%的服(fú)務邏輯信息,即無需(xū)打開節點參數麵板,也能(néng)基本(běn)了解服務的運行流程。
節點配置麵板:提供(gòng)節點快速查找、快(kuài)速生成(chéng)、快速配置(zhì)等功能。這些功能有助於開(kāi)發者快速找到所需節點並進(jìn)行配置,提(tí)高配置效率。
此外,還可以提供更多便捷操作,包括批量參數轉換、批量賦值、我的修改(gǎi)、最近修改、最多修(xiū)改、大中小屏自動適配等。這些功(gōng)能(néng)的將進一步(bù)提升開發效率並優(yōu)化用戶體驗。
一個卓越的服務編排功能(néng),不(bú)僅為(wéi)開發者提供流暢、高效的(de)操作體驗,還需要考慮對業務功能迭代開發的考(kǎo)慮(lǜ)。隨著業務的發展,邏輯的複雜化,服務節點的數量會不(bú)斷增長,導致畫布變得(dé)難以閱讀和維護。通過提升編排邏輯的可讀性和(hé)重構能力,可以有效解(jiě)決持續迭代所帶來的挑(tiāo)戰:
支持節點的折疊:當畫布中節點太多的情況下,非核(hé)心節點往往(wǎng)會成為閱讀(dú)過程中的幹擾因素。通(tōng)過引入折(shé)疊功能,用戶可以輕鬆隱藏這些節點(diǎn),有效減少視覺雜亂,提升閱讀(dú)和信息處理(lǐ)的效率。

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

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

2、服務抽象:通過一鍵操作(zuò),輕鬆將邏輯提煉並自動生成為一個全新的服務,從而實現公共邏輯的抽象。服務(wù)的抽象過程實現主要包括以下幾個高效步驟(zhòu):
1)精準節點(diǎn)框選:利用便捷(jié)的框選功能(néng),可以精確(què)選定(dìng)包含(hán)公共邏(luó)輯的節點(diǎn)集合。
2)一鍵抽象生成:點擊“抽象”按鈕(niǔ),係統自動將選中的(de)節點封裝(zhuāng)成一個獨立的新服務。
3)參數映射:係統自動識別並提取選中節點所依賴(lài)的參數,將其作為新服(fú)務的輸入參(cān)數。
4)原節點移(yí)除:創建新服務後(hòu),原(yuán)服(fú)務(wù)中對應的選中節點將被自動刪除。
5)服(fú)務引用自動集成:係統在(zài)原服務(wù)中自動(dòng)生成一個服務引用節點,調用新生(shēng)成的服務,並根據原節點的輸入參數自動賦值,實現無縫銜接。
6)依賴關(guān)係自動更新:係統智能(néng)識別(bié)並自動(dòng)替換原服務中依賴於(yú)選中節點的引用(yòng),使用(yòng)新服務的輸出參數,確(què)保整個服務流程的邏輯連貫性和數(shù)據一致性。

首先來分析一下汽車行業的生產效率情況:一輛汽車的平均零部件平台(tái)在一萬個左右,如果從0到1開始生(shēng)產一(yī)輛汽車,需要約40000小時,大概是3-5年。但經過行業的發展,技術(shù)的沉澱,生(shēng)產(chǎn)的標(biāo)準化,目前很多先進的汽車廠商生產流水線隻需要幾分鍾就能完成一(yī)輛汽車的組裝。
如此驚人的飛躍,讓不少行業紛紛效仿。服務編排跟汽車的組裝其實非常相像,通過原子節點編排成一個個服(fú)務。再由服務組裝成一個個通用的業(yè)務領域(yù)組件,最後僅需要通過業務組(zǔ)件進行簡單的組裝即可快速完成應用邏輯的開發,低代碼開發的效率,也將(jiāng)帶來質的飛躍(yuè)。

在此過程中,一個至關重要的環節是行業組件的沉澱。這意(yì)味著需要根據(jù)行業特性,抽象出通用的業務流程,並依據組件的標(biāo)準和規範,將(jiāng)這些流程封裝成可(kě)複用的業務場景組件。目前,已經有一些行業開始朝著這個方向邁(mài)進。