Skip to content

Latest commit

 

History

History

domain-driven-design

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Domain-Driven Design (DDD)

Domain-Driven Design (DDD) is a software development approach that aims to help teams create software aligned with a business's needs and requirements. DDD focuses on breaking down complex business domains into components, which can then be implemented in software. The business domains are the subject matter and context in which a particular business operates.

Practices, concepts, and patterns:

  • Ubiquitous Language: This refers to a shared language and vocabulary used by both the business stakeholders and the development team. By using the same language, everyone involved in the project can have a better understanding of the requirements and goals of the project.

  • Bounded Contexts: This refers to the idea that a complex business domain can be broken down into smaller, more manageable subdomains, each with its own context and rules. Each bounded context has its own language, models, and constraints that are specific to that context.

  • Entities and Value Objects: These are two key building blocks in DDD. Entities are objects that have a unique identity and can change over time, while Value Objects are objects that represent a value or a concept, such as a date or a currency.

  • Aggregates: Aggregates are collections of entities and value objects that are treated as a single unit. They are used to ensure consistency and integrity in the business domain.

  • Domain Events: Domain events are occurrences that happen within the business domain, such as a customer placing an order or a product being shipped. They can be used to trigger actions or processes within the software system.