Duration: 24 hours
DescriptionThe closer the relationship between software development and business strategy, the easier it will be to maintain and develop a system that meets future business needs, which will eventually lead to more successful software projects. Domain-oriented design (DDD) allows you to reduce the risk of failures in software projects by building more effective communication between the customer and development team. DDD practices are divided into two groups - strategic and tactical.
Strategic DDD tools are used to make high-level architectural design decisions. Such as the decomposition of systems into components and determining how to integrate them, based on building a common understanding of how the system being developed will meet the needs of the business or customer.
DDD tactical patterns allow us to write code in such a way that it reflects the subject area, meets goals, and speaks the language of business. Considerable time is devoted to the discussion of real examples and solving practical problems, which allows you to consolidate your knowledge and use the skills of applying strategic design and tactical modeling.
RoadmapDDD Overview. Includes Ubiquitous Language.
- OOP, OOD principles
- Architectural Business Logic Patterns
DDD Strategic Design
- Domains, Subdomains
- Bounded Contexts
- Context Maps
Practice Session – Applying Strategic Design
DDD Architectural View
- Layered Architecture
- Hexagonal (ports and adapters) Architecture
- Event Driven Architecture
- Event Sourcing
Practice Session – DDD Architectural View
DDD Tactical Tools
- Value Objects
DDD Tactical Tools
- Domain Events
- Develop an understanding of how DDD helps in developing complex software systems
- Learn how to apply Strategic patterns for decomposition
- Learn how to apply Tactical patterns within a Bounded Context
- Find out how to design Aggregates effectively
- Understand how Domain Events can be used to integrate Bounded Contexts