It’s All About the Domain
Technology is an important aspect for every software system. Being a software architect or developer, we feel comfortable with technology but must not forget that it is only a means to an end. The purpose of a software system is to assist the user in his work. Domain-driven design (DDD) helps us to build such systems. Therefore, the software is designed in a way that reflects the domain.
A Common Language Facilitates Collaboration
The results of software development projects are often not what the users imagined. Communication problems between experts and developers are not revealed until the usage of the software which often is too late. To avoid this issue, we use DDD. Experts and developers deliberately develop a common terminology to form the basis for the domain-driven architecture.
Software of High Quality Due to Coherent Patterns
Not only do users and developers have misunderstandings, but also the developers themselves have different ideas about the architecture of the future system. To ensure high quality, DDD offers predefined patterns such as Entity, Value Object, Aggregate, Service etc. These DDD patterns simplify communication between developers and lead to a coherent architecture.
Looking Beyond the Boundaries of Your Own System
Terminology and patterns not only work for one system, but also in large software projects with several development teams or separately developed microservices. Concepts such as Bounded Context, Context Map, Shared Kernel, Domain Events, Anticorruption Layer, etc. are used at this point.
What is Covered in This Workshop?
You will learn how to develop a terminology, how to use domain-driven design patterns, and how to establish a connection to other applications. This is required to design an application in context guided by the domain. Talks, discussions, and exercises will be part of the workshop to deepen the learned knowledge in practice. We will use an example domain to practice making an architecture of high quality. You will see how simple a design can be if you understand the domain and the architectural guidelines of domain-driven design.
Strategic Design: Split the Domain, Define Models
Bounded Context, Subdomain, Context Mapping with Context Map, Customer-Supplier-Teams, Shared Kernel, Open-Host-Service and Published Language
Develop a common language to use consistently; collaboration techniques such as Domain Storytelling and glossary
Developing the Domain Model
Domain-Logic patterns and domain-specific items as the starting point for the model
Tactical Design – Express the Model in Software
Building Blocks: Entity, Value Object, Aggregate, Service, Factory, Repository, Domain Event
Maintain the Local Consistency Within the Model
Anticorruption-Layer vs. Conformist, Separate Ways, Integration
Model in the Application Architecture
Modules, Layered Architecture, Hexagonal Architecture
Implementing the Building Blocks
Design by Contract
Command Query Responsibility Segregation (CQRS) and Event Sourcing
September 17–19, 2019 Standard Edition in Hamburg
October 15–17, 2019 Standard Edition in Eschborn
November 20–22, 2019 Standard Edition in Berlin (English)
December 03–05, 2019 Standard Edition in Hamburg
January 21–23, 2020 Standard Edition in Hamburg
March 04–06, 2020 Standard Edition in Nuremberg
May 12–14, 2020 Standard Edition in Hamburg
June 17–19, 2020 Standard Edition in Ludwigshafen
Max number of participants per date: 12 persons
Early Bird* €1800**
Standard Price €2000**
Outside of Hamburg
Early Bird* €2200**
Standard Price €2300**
*) If you book at least 3 months before the start of the training
**) All prices include lunch and meals on site, excl. VAT
We are looking forward to your request!
All trainings are held in German. Please let us know if you are interested in trainings in English.