質量屬性:
關乎質量屬性的問題 視爲在將來可能會發生,其實就是“風險(Risk)”。
架構是重要的東西,是不容易改變的決策。
未曾預測到系統存在的風險,不幸它又發生了,帶給系統架構的改變可能是災難性的
爲什麼說限界上下文是領域驅動設計中最重要的元素?:
原因:
限界上下文的邊界,就可以將這種風險帶來的影響控制在一個極小的範圍
更改了技術選型,選擇基於 ElasticSearch 的數據分析微服務替換舊服務。這種改變幾乎不影響產品的其他模塊與功能(技術的替換變更 不影響業務邏輯)
重用和變化:
限界上下文對變化的應對,其實是“單一職責原則”的體現,即一個限界上下文不應該存在兩個引起它變化的原因
例子:
物流聯運管理系統,最初團隊的設計人員將運費計算與賬目、結賬等功能放在了 財務上下文中。
當國家的企業徵稅策略發生變化時,會引起財務上下文的變化,引起變化的原因是財務規則與政策的調整。
倘若運費計算的規則也發生了變化,同樣會引起財務上下文的變化,但引起變化的原因卻是物流運輸的業務需求。
如果我們將運費計算單獨從財務上下文中分離出來,就可以獨立演化,符合前面提及的“自治”原則,實現了兩種不同關注點的分離。
限界上下文協作方式的要素稱之爲“上下文映射