Architecture Decision Record

Active theme: Light

← 文件

決策即程式碼嘅適應度函數

適應度函數係用程式碼寫成嘅客觀自動化檢查,用嚟驗證決策有冇持續被遵守。

  • 適應度函數令決策可以被測試同保證。

  • 決策嘅適應度函數可以大大幫助品質保證、監管流程同管治目標。

適應度函數同決策點樣連繫

決策記錄負責記錄決策,而適應度函數就負責保證決策。

  • 決策例子:我哋為咗符合審計要求而採用事件溯源(event sourcing)。

  • 適應度函數例子:我哋用持續整合伺服器去測試,所有狀態更改都必須產生事件。

點解適應度函數對決策有幫助

客觀量度:適應度函數只有通過或者失敗,所以工作成果一目了然。

持續使用:適應度函數係你活生生嘅規則,每次提交同建置都會運行。

有信心重構:適應度函數會自動揪出違反決策規則嘅錯誤。

可擴展嘅管治:適應度函數可以保證標準得到遵守,又唔會造成樽頸。

適應度函數可以用 AI 嗎?

適應度函數可以利用 AI 大型語言模型(LLM)嚟處理決策,方法係就你嘅工作(例如計劃、程式碼、結構描述、API 等)提出問題:

IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning.
IMPORTANT: Turn on extended thinking. Turn on expert advice. Turn on search.

This is a fitness function to evaluate if our work is
using all our decisions, and is correct and accurate.

- Our decisions are here: {url}
- Our work to evaluate is here: {url}

Explain any errors, problems, gaps, weaknesses. Be direct. Be decisive.

架構單元測試

ArchUnit:用任何普通嘅 Java 單元測試框架,檢查 Java 程式碼嘅架構規則。

ArchUnitTS:用 Jest、Vitest、Jasmine 等,檢查 TypeScript 程式碼同 JavaScript 程式碼嘅架構規則。