Essential Domain-Driven Design
Virtual Workshop
The team-focused Essential DDD workshop is geared towards development team members looking to apply domain-driven design (DDD) at a tactical level on their project work. It is an introductory level workshop to introduce you to foundational aspects and techniques of DDD so you can start applying them right away in your everyday development work. This workshop is intended to provide the fundamentals necessary for the Strategic DDD workshop.
Curriculum
Session 1 - Collaborative Modeling
-
Explain the importance of domain modeling for complex domains
-
Describe two types of complexity and their differences
-
Identify areas your team would benefit from intentionally growing your shared language
-
List current domain modeling techniques your team currently uses
-
Use EventStorming to collaboratively discover a business process
Session 2 - Modeling in Code
-
Recognize problems surfaced by vague intentions in code caused by implicit or missing domain concepts
-
Mob programming to express an implicit domain concept explicitly in code
-
Describe four key building block patterns for expressing domain models in code (i.e. values, entities, domain services, domain events)
-
Refactor code to deeper insights using the building block patterns
-
Explain role of domain events in scaling and decoupling
Session 3 - Supple Design
-
Explain the role of domain modules in organizing code according to related domain concepts
-
Practice modularizing domain concepts
-
Describe connascence of name as a type of semantic coupling
-
Explain the connection between connascence of name and context boundaries
-
List the goals for identifying and managing context boundaries
- Identify key reasons for embracing multiple models
- Describe the role of an anti-corruption layer in isolating bounded contexts
Who Should Attend
Anybody who works in software teams or with software teams will be able to fully participate in this workshop and take away concrete skills they can apply in real working situations. This includes software developers, architects, testers/QA, DevOps/DevSecOps, Product managers/owners, BAs, delivery managers, engineering managers and directors, and CTOs.
Virtual Format
-
Three instructor-led interactive 3-hour online class sessions
-
Live instruction using Zoom and Miro (collaborative online whiteboard) in each session
-
Hands-on pair coding for modeling in code session (in Ruby, Java, C#, Typescript, and Python - other languages may be available upon request). Attendees must have access to Github to access code samples.
-
Practical homework to prep for sessions and then share your learning with your fellow participants
-
Maximum of 20 attendees
"This training connects the dots of the core concepts of DDD with a good mix of theory, experience & hands-on learning. It allowed me to find what the next step should be in my learning and applying to my DDD journey."
"Immersive. Understandable. Awesome! Paul has an excellent grasp of the concepts he teaches, and his techniques really help cement what is taught in your mind. He's an excellent communicator. I really enjoyed the way you taught this class."
"Fun, interesting, applicable!"