天天看點

思考(七十五):Golang 程式設計之有限狀态機

有限狀态機

有限狀态機(英語:finite-state machine,縮寫:FSM)又稱有限狀态自動機(英語:finite-state automation,縮寫:FSA),簡稱狀态機,是表示有限個狀态以及在這些狀态之間的轉移和動作等行為的數學計算模型。

用于程式設計中,有以下優點:

  • 統一退出邏輯
  • 代碼容易維護,隻需要寫好代碼片段
  • 易擴充,同理隻需要擴充編寫代碼片段

以下以 2 個項目中的實際例子,來展示下有限狀态機的威力

壓測工具應用有限狀态機

壓測工具,會模拟每個賬号行為:

  • 從登陸開始(包括登陸中的每個步驟)
  • 到線上(執行壓測用例中的每個步驟)
  • 到登出

然後反複

由于壓測過程中,賬号特别容易因為各種原因退出。如果讓賬号能正常運作,也是編寫壓測工具的一個小難點

如果使用有限狀态機,則可以非常簡單的解決上述這些問題

見一個實作中的壓測工具有限狀态機:

思考(七十五):Golang 程式設計之有限狀态機

繼續閱讀