Domain-Driven Design (DDD) Training
Domain-driven design (DDD) is an approach to software development for complex needs
by connecting the implementation to an evolving model.
DDD helps improve codebase quality by positively affecting vital aspects of the software development
lifecycle - gathering and understanding requirements, analysis, design, architecture, and coding.
Complex and long-running projects benefit from DDD by keeping the fast development pace when
other projects typically slow down.
Shorter projects and individual contributors enjoy using DDD as it helps achieve cleaner and intuitive
code and improved quality of the delivered software.
DDD also helps in alignment with modern software architecture styles such as Microservices,
Event Sourcing, CQRS, and so on.
Putting the Model to Work
- Bounded Context
- Ubiquitous Language
- Continuous Integration
- Model-Driven Design
- Hands-on Modelers
- Refactoring Toward Deeper Insight
Building Blocks of a Model-Driven Design
- Layered Architecture
- Value Objects
- Domain Events
- Intention-Revealing Interfaces
- Side-Effect-Free Functions
- Standalone Classes
- Closure of Operations
- Declarative Design
- Drawing on Established Formalisms
- Conceptual Contours
Context Mapping for Strategic Design
- Context Map
- Shared Kernel
- Customer/Supplier Development
- Anticorruption Layer
- Open-host Service
- Published Language
- Separate Ways
- Big Ball of Mud
Distillation for Strategic Design
- Core Domain
- Generic Subdomains
- Domain Vision Statement
- Highlighted Core
- Cohesive Mechanisms
- Segregated Core
- Abstract Core
Large-scale Structure for Strategic Design
- Evolving Order
- System Metaphor
- Responsibility Layers
- Knowledge Level
- Pluggable Component Framework
- Model Exploration Whirlpool
- Event Storming
- Whiteboard Modeling
- We understand that you have many choices, and we appreciate that you trust us!
In return, we provide the best learning experience for the best group price on the market.
- We teach on-site (on your premises) or off-site (we will arrange the necessary space), in a classroom of up to 35 people.
- The training cost is the same irrespective of the group size so that you can save more with larger groups.
- In person, immersive training courses designed and led by a hands-on
Software Architect (Tengiz Tutisani) for Software Architects and Software Engineers. Tengiz uses all the
mentioned topics at work every day and teaches others how to do the same. A 100% context, relevance, adequacy,
and practicality are guaranteed. Attendees will not leave with confusion or unanswered questions.
You will be able to use the knowledge acquired in training at your work and will have access to Tengiz for
- Tengiz speaks three languages fluently (English, Russian, Georgian) and he can teach in any of these languages.
- Upon completion of the training course, we provide an electronically verifiable certificate. Show off your
skills by letting others know that you have attended the required training course.