1 DAY WORKSHOP
Applying Tactical Domain-Driven Design patterns
Do the limitations of traditional design patterns leave you frustrated when dealing with evolving business logic? Are you looking for ways to improve your code’s flexibility, maintainability, and business relevance? Do you want to know how you can go from domain modeling, to using the Domain-Driven Design tactical patterns in Java or C#? In our “Applying Tactical Domain-Driven Design Patterns” workshop, you will transition from conceptual models to concrete implementations using TDD in your choice of Java or C#.
This workshop is designed with software people in mind, namely ones involved in designing and writing software. Titles vary, but can fall under one of those:
- Software Developers & Engineers
- Software architect
- Solution, Enterprise or Domain Architects
- Engineering managers
Unlock the potential of Domain-Driven Design (DDD) in your code in this practical workshop designed for developers eager to master DDD’s tactical patterns within Java or C#. Delve into each of the core patterns, including entities, value objects, repositories, domain events, services, and aggregates.
This one-day intensive course offers a perfect blend of theory and practice, guiding you from the essentials of software design to sophisticated coding techniques. Extend your learning with an optional pre-day focused exclusively on domain modeling with EventStorming and Example Mapping.
During this workshop, you’ll take the output from a domain modeling session and use it as a foundation for crafting your software model. We’ll apply responsibility-driven development principles and collaborate using CRC cards to ensure that each candidate class of our design is purposeful and clearly defined. By emphasizing continuous collaboration with domain experts, we maintain a strong alignment between code and model throughout the workshop. With the model whirlpool method as our compass, we chart a course from q defining bounded contexts to implementing tactical patterns with Test-Driven Development (TDD) in Java or C#. By the conclusion, you’ll not only have coded with advanced DDD patterns but also developed a mindset for solving complex design challenges in a maintainable and scalable way.
What you will learn
- In-depth understanding of the tactical patterns and how to apply them in Java or C# to create robust, business-focused software solutions.
- Write code examples for tactical patterns like entities, value objects, repositories, domain events, services, and aggregates, learning how they interconnect to form a cohesive model.
- Implementing collaborative modeling in code from an outcome of domain modeling sessions of Eventstorming and Example Mapping into an Object-Oriented software model, ready for development.
- Practice responsibility-driven development, using CRC cards to distribute responsibilities across your model, ensuring clarity and maintainability.
- Understand the model whirlpool exploration to iteratively refine your design and ensure continuous alignment with business needs as your coding progresses.
- Apply TDD practices to solidify your coding process, allowing for cleaner, more testable, and reliable outcomes in Java or C#.
Prior experience in Domain-Driven Design is not a prerequisite for this workshop. To help lay the groundwork for the concepts we’ll explore, we provide an optional short introduction to Domain-Driven Design before the beginning of the workshop. This preparatory material is designed to prime your understanding and set you up for maximum benefit from the workshop’s content.
For participants keen on advanced preparation, we recommend delving into “Learning Domain-Driven Design” by Vladik Khononov. This resource offers insightful, accessible guidance for those new to DDD. Additionally, Eric Evans’ seminal work, “Domain-Driven Design: Tackling Complexity in the Heart of Software,” remains an invaluable read for anyone looking to deepen their understanding—a definite advantage for workshop participants.
Our workshop is highly interactive, designed to engage you in hands-on learning experiences. When conducted online, we utilise Miro, a versatile digital whiteboard tool, for our collaborative exercises. If you’re unfamiliar with Miro, we encourage you to take advantage of the self-paced participant onboarding course available at Miro Academy: Miro Participant Onboarding Course. This short course will equip you with the navigational knowledge needed to fully participate in our interactive sessions.