成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

業務系統知識沉淀的思考與初步探索

開發 前端
我們把FSM-X這一套業務框架理解為對一類流程控制邏輯的抽象,是前文中提到的廣義設計模式的一種。于是進行了FSM-X的可視化實現,作為用廣義設計模式去抽象和承載業務知識,完成提取和沉淀這種思路的探索實踐。

1 背景介紹

1.1 要解決什么問題

系統文檔是當前對業務系統知識進行沉淀的主要手段。由于業務系統快速迭代或者人員的流動,文檔缺失、風格各異、沒有與迭代同步更新等問題十分常見,文檔質量也是因人而異。

隨之而來的是研發效率、產研協作效率、質量等一系列的問題,在團隊人員流動頻繁的情況下尤為突出。

圖片圖片

圖為研發流程示意圖,綠色箭頭部分是理想、高效的流程;但是由于不同角色間的信息差異,某一知識若不能從知識庫中獲取,就會存在紅色箭頭部分的逆向流程,需要各角色來回溝通確認;這樣的知識越多,逆向流程越多,研發流程越長,效率越低

1.2 業務系統背景

去年,我們使用領域驅動設計(Domain-Driven Design,DDD)的思想對系統進行了重構。在DDD中,以統一語言為基礎,面向業務進行領域建模,將真實業務與軟件實現關聯起來,以領域模型為知識的載體實現沉淀。但是到最終的落地實現,知識沉淀的手段還是落到文檔上。

我們希望找到一種通用的知識沉淀方法,自動從代碼中抽象、提煉業務知識,以及展現和沉淀知識,達到“代碼即文檔”的效果。

2 我們的思考

圖片圖片

原始代碼中蘊含了我們需要的知識,但非結構化、無統一規律的代碼難以直接轉換為知識;需要一層中間的抽象來規范化結構化原始代碼,從有既定規律的代碼中就可提煉出我們所需的知識

2.1 什么是業務系統知識

商品的價格尾數必須是“8”是業務系統知識,商品上架后會發出MQ通知也是業務系統知識。根據側重的不同分2個方向:

  • 純粹的業務知識,僅僅是業務規則的體現,與技術實現無關;
  • 系統知識,可能包含了業務的規則,更重要的是技術實現方案的體現;比如為了保證數據的最終一致性,系統的實現往往比直接的業務規則要復雜。

2.2 知識存在于哪里

無論是業務規則還是技術實現無外乎什么條件下做什么事情,知識就在各種流程控制邏輯中。比如,各種業務規則判斷、根據不同條件頁面展示不同內容、監聽某個消息進行業務處理、通過策略模式進行邏輯分發等,都可以認為是流程控制的不同實現,通俗理解就是對IF-ELSE邏輯的各種不同實現。

2.3 如何提煉出業務系統知識

與DDD中面向業務進行建模不同,既然知識存在于流程控制邏輯中,那就對流程控制進行抽象、建模;脫離于具體的業務場景才能通用于每一種業務場景。

我們將流程控制的抽象定義為廣義的設計模式,是對IF-ELSE邏輯不同實現方式的抽象,包括常見的設計模式如責任鏈模式、策略模式、以及后文涉及的狀態機(FSM)、以及后續需要針對性的進行自定義抽象。業務系統知識就被承載其中,而且是結構化的、方便被提取的。

3 探索性實踐

業務系統中使用了一套拓展狀態機(FSM-X)的框架,符合上述對流程控制進行抽象、建模的想法,也是一種對IF-ELSE邏輯的實現方式。所以我們將FSM-X的可視化作為業務系統知識沉淀的初步探索。

3.1 FSM-X

FSM-X核心還是有限狀態機(FSM)的實現,然后在此基礎上擴展集成了事務消息、JOB等功能;相關的配置項統一存儲到數據庫中,方便配置和管理。主要有以下幾個核心概念:

  • Mapping:可以認為是FSM中的變換(Transition),包含了源狀態、目標狀態、事件、操作,表示在源狀態下發生某一事件,觸發對應的操作,流轉到目標狀態。還包含了JOB、事務消息(TxMsg)、狀態機鏈(Chain)。
  • Chain:狀態機鏈,用于鏈接2個Mapping,當前的Mapping的流轉完成后自動執行鏈后的Mapping流轉。
  • JOB:異步任務,當Mapping中配置了JOB時,會自動執行對應的JOB。
  • TxMsg:事務消息,如果Mapping中有對應配置,完成Mapping流轉的同時自動發送消息。

3.2 FSM-X可視化實現

系統整體實現架構如下圖

圖片圖片

  • FSMX配置中心統一管理所有配置,對外提供拉取配置數據的能力。
  • FSMX客戶端在業務服務啟動時拉取配置完成啟動,然后異步對狀態機數據進行轉換,得到可視化數據并進行上報。
  • FSMX配置中心會在本地緩存可視化數據,并對其進行加工對外呈現。

與FSM-X中的幾種核心組件對應,可視化的視圖節點主要有以下幾種:

  • Mapping

圖片圖片

上圖為“SUPPLY_PRODUCT”域“質檢合格”后“上架”事件節點,最后流轉到“預上架”狀態,之后有21條可能的鏈繼續往后流轉。

  • Chain

圖片圖片

上圖紅框中為2條狀態機鏈,表示“SUPPLY_PRODUCT”域“上架”操作完成后可能執行“PRODUCT_MART”域“預上架”操作,也可能執行“SUPPLY_PRODUCT”域“上架取消(無可上架賣場)”操作。具體會怎么執行,由鏈中的業務邏輯控制,目前這部分還沒有可視化,需要由其他自定義的廣義設計模式來進行抽象。

  • JOB

圖片圖片

  • MSG

圖片圖片

以我們系統中商品的上架流程為例,比較完整的可視化效果圖如下

圖片圖片

從圖中可以看出上架流程的整體執行過程,但還只是一個粗粒度的框架;因為單一從FSM-X中提煉出來的業務系統知識是有限的,更多的知識還存在于無法被抽象提煉的非結構化代碼中。

4 總結

我們把FSM-X這一套業務框架理解為對一類流程控制邏輯的抽象,是前文中提到的廣義設計模式的一種。于是進行了FSM-X的可視化實現,作為用廣義設計模式去抽象和承載業務知識,完成提取和沉淀這種思路的探索實踐。

從目前的結果看,可視化的流程圖能夠表達狀態機流轉相關的業務知識,只是知識的完整性還遠遠不夠,畢竟目前只是從一種廣義設計模式提取了知識,大部分的業務知識是不被包含在內的。但是通過這個效果,筆者認為這種思路是可以繼續探索的,對流程控制的各種實現都做好抽象之后,相當于形成了一套詳細的代碼規范,在既定規范內的業務代碼就能實現業務知識的抽取、沉淀。敬請期待!!!

關于作者

王輪,轉轉B2C技術部后端研發工程師

責任編輯:武曉燕 來源: 轉轉技術
相關推薦

2013-11-04 17:38:09

Clouda百度

2018-01-23 10:29:50

主搜索店鋪搜索

2015-07-14 13:48:11

2014-07-15 14:17:30

成本業務去IOE

2018-12-03 11:42:54

華為云

2024-05-06 07:58:25

大模型AI智慧芽

2013-07-08 09:49:23

2022-05-13 11:24:09

數據美團

2023-09-04 18:57:01

API接口數據中心

2010-04-21 14:29:52

Unix 線程

2023-12-12 12:16:56

帶貨業務體系

2013-08-08 09:16:38

IT運維信息化

2023-04-11 07:37:52

IaaSPaaSSaaS

2024-09-19 16:11:07

2022-03-17 12:00:48

異構業務實踐

2016-01-11 16:59:48

暢享網

2022-07-04 19:02:06

系統業務思考

2010-04-23 16:37:13

Aix權限

2017-04-06 14:16:37

SOA云平臺架構

2010-05-25 09:44:03

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频在线一区 | 中文字幕日韩欧美一区二区三区 | 国产a区| 亚洲成av人影片在线观看 | 欧美八区| 日韩at| 日韩1区 | 欧美黑人国产人伦爽爽爽 | 国产a区| 国产在线中文 | 最近日韩中文字幕 | 自拍偷拍在线视频 | 亚洲一区二区三区在线播放 | 亚洲精品久久久蜜桃 | 一级大黄色片 | 成人在线精品视频 | 欧日韩不卡在线视频 | 性福视频在线观看 | 国产精品资源在线观看 | www.青青草| 91xx在线观看 | 欧美视频在线一区 | 高清人人天天夜夜曰狠狠狠狠 | 在线亚州 | 亚洲三级视频 | 午夜精品一区二区三区在线视频 | 日韩无 | 国产在线观看一区 | av中文字幕在线 | 欧美久久国产 | 日本三级日产三级国产三级 | 日本午夜精品一区二区三区 | 精品在线一区 | 二区三区视频 | 欧美成人手机在线 | 日本欧美视频 | 成人一区二区三区 | 午夜一区二区三区 | h视频免费观看 | 97久久久久久久久 | 人人看人人射 |