接 LLM API 也需要防腐層
🔖標籤 #ddd #ddd思考 #ai
[!AI] 本文摘要
大型語言模型供應商的 API 形狀、參數與計價方式經常變動,若應用程式的領域層直接依賴這些外部規格,將導致模型詞彙滲透並扭曲核心設計。本文從限界上下文與上下文映射的角度,說明為何應將模型供應商視為外部限界上下文,並透過防腐層吸收回應格式、參數與錯誤差異,讓領域層維持純淨,最後給出可直接落實的架構建議。
🔖標籤 #ddd #ddd思考 #ai
[!AI] 本文摘要
大型語言模型供應商的 API 形狀、參數與計價方式經常變動,若應用程式的領域層直接依賴這些外部規格,將導致模型詞彙滲透並扭曲核心設計。本文從限界上下文與上下文映射的角度,說明為何應將模型供應商視為外部限界上下文,並透過防腐層吸收回應格式、參數與錯誤差異,讓領域層維持純淨,最後給出可直接落實的架構建議。
🔖標籤 #ddd #ddd思考 #ai
[!AI] 本文摘要
領域驅動設計的聚合是保護業務不變量的邊界,Milan Jovanović 在文中整理了 Vaughn Vernon 提出的四條設計規則。AI 生成程式碼經常把跨聚合的狀態修改直接寫進應用服務,並將業務規則塞入服務層,導致貧血模型。本文對照四條規則與常見違規樣貌,並給出讓 AI 正確生成聚合的約束條件。
🔖標籤 #ddd #ddd思考 #ai
[!AI] 本文摘要
事件風暴(Event Storming)工作坊結束後,牆上留下大量領域事件、命令與聚合候選的便利貼。把這些便利貼交給 AI 整理成結構化清單,可以加速後續的建模工作。然而 AI 的角色僅限於提出候選,真正的聚合邊界與交易一致性判斷仍須由人決定。本文探討如何將工作坊產出餵給 AI、AI 最容易整理錯的地方,以及人機分工的實務建議。
🔖標籤 #ddd #ddd思考 #ai
[!AI] 本文摘要
團隊導入 AI 助理或 coding agent 時常出現答非所問或相似概念混淆的情況,根因往往是詞彙沒有對齊。每個限界上下文都該有一份專屬詞彙表,記錄術語的定義、應避免的同義詞,以及該詞彙在邊界外不適用的情形。這份詞彙表可以直接成為 AI 助理的上下文檔,讓通用語言精確地被放大成正確的程式碼。本文說明如何將限界上下文的詞彙表轉化為 AI 的 system prompt,並提供維護這份文件的具體做法。
🔖 #ddd #六邊形架構
[!AI] 本文摘要
這篇文章分享了一個實際案例,說明如何使用 DDD(Domain Driven Design)和六角架構(Hexagonal Architecture)建立 Java 後端服務。以用戶管理系統為例,展示了如何將複雜的業務邏輯組織成清晰的領域模型,並透過六角架構實現業務邏輯與外部系統的分離。主要解決了與 Spring Boot 整合、測試策略和事件處理等挑戰,最終達成了高可維護性、易測試性和良好擴展性的系統架構。這種架構雖然前期投入較多,但長期來看能帶來顯著的開發效益。