We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
DjangoCon 2022 | A use case of implementing Domain-Driven Design (DDD) in Django
Implement Domain-Driven Design in Django by modeling the business domain, reducing coupling, and increasing testability, and discover how it improves software quality and facilitates communication between business and technical teams.
- DDD is a design approach that focuses on modeling software to match the domain, matching business needs
- Business and technical people must communicate in the same language
- DDD improves the quality of code by reducing coupling and increasing testability
- It’s not about modeling the entire software, but about modeling the business domain
- DDD is a large-scale architecture, not a micro-architecture
- Bounded context, a key concept in DDD, means separating concerns into small parts
- GDD (German-driven design) is not about German or language, but about using a German sausage analogy to explain the concept
- GDD helps to understand that the business domain is not just a technical concept, but a business reality
- Use cases, a concept in DDD, are actions or behaviors that a user or API would do
- Repository and presenter are two major components in DDD; repository is used for data access and presenter is used for business logic
- Command and query separated (CQS) is a pattern that separates commands and queries in DDD
- Shared kernel is a common pattern in DDD, where data is shared among different parts of the system
- Ubiquitous language is a key concept in DDD, where everyone uses the same language to communicate
- GDD is not for all projects, but for those that require a long-term approach to software development