Domain-Driven Design
ทำไมต้อง Domain-Driven Design
Section titled “ทำไมต้อง Domain-Driven Design”Domain-Driven Design (DDD) เป็นแนวทางการออกแบบซอฟต์แวร์ที่เน้นการทำความเข้าใจ business domain อย่างลึกซึ้ง และนำความรู้นั้นมาสะท้อนในโค้ด โดยมีเป้าหมายให้โค้ดสื่อสารกับ business experts ได้โดยตรง และสามารถรองรับความซับซ้อนของ business rules ได้ดี
DDD Core Concepts
Section titled “DDD Core Concepts”| Concept | Description | Django Implementation |
|---|---|---|
| Bounded Context | ขอบเขตของ domain ที่มีความหมายเฉพาะ | Django App |
| Ubiquitous Language | ภาษาที่ใช้ร่วมกันระหว่าง dev และ business | Model/Method names |
| Aggregate | กลุ่ม entities ที่ต้องสอดคล้องกัน | Model + related models |
| Entity | object ที่มี identity | Model with ID |
| Value Object | object ที่ไม่มี identity | dataclass (frozen) |
| Domain Event | เหตุการณ์ที่เกิดขึ้นใน domain | Signal + Event class |
| Repository | abstraction สำหรับ data access | Manager/Repository class |
| Domain Service | business logic ที่ไม่ belong กับ entity ใด | Service class |
เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม
ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด
Login with Google