Domain-Driven Design (DDD) เป็นแนวทางการออกแบบซอฟต์แวร์ที่เน้นการสร้างโมเดลซอฟต์แวร์ให้สอดคล้องอย่างใกล้ชิดกับ business domain โดยให้ความสำคัญกับการร่วมมือกับ domain experts ภาษาที่ใช้ร่วมกัน และโมเดล domain กับขอบเขตที่กำหนดไว้อย่างชัดเจน มันมีคุณค่าสำหรับ business domains ที่ซับซ้อน
แนวคิดแกนหลักของ DDD
DDD centers the design on the BUSINESS DOMAIN (the real-world problem):
✓ UBIQUITOUS LANGUAGE → a shared, precise vocabulary between developers and domain
EXPERTS, used consistently in code AND conversation (reduces miscommunication)
✓ MODEL the domain → rich domain models reflecting real business concepts/rules (not
just data structures) — the model captures the business logic
✓ collaborate with domain EXPERTS → deeply understand the domain to model it well
