DDD Academy
No upcoming sessions

DDD Immersion

Essentials
English

Your Instructors

DDD Immersion

Note: this course is taught by Eric Evans in person.

Learn to put the domain model to work, hands-on, in this intensive 4-day course.

Finding and exploiting domain models is key to success with large software systems. By cultivating a strong connection between the language used by experts, users, and developers, the right kind of models can dramatically accelerate the process of translating the customers’ needs into working software. Strong domain modelling coupled with programming best practices such as exploiting design patterns, refactoring, and test-driven development yield a principled yet practical approach to the development of large software systems.

“The best class I've been to in a very long time. I went home, put my kids to bed, and started refactoring my system!”

This intensive course will aid participants in striking a healthy balance between digging into their subject matter and addressing technological issues, which, while unavoidable, cannot be allowed to dominate the development process for commercially viable systems.

We weave together lecture, discussion and classroom exercises, including hands-on coding projects. In discussions, attendees have the opportunity to discuss their own experiences and relate their own work to the principles and techniques presented in the class.

Course Outline

Day 1: Model Exploration and Ubiquitous Language

  • Domain-driven design overview
  • Making implicit concepts explicit
  • Ubiquitous Language
  • Brainstorming models
  • Techniques and pitfalls of bringing about a creative collaboration.

Day 2: Strategic Design

  • Morning: Context Mapping
    • Pragmatic approach to dealing with diverse models and designs on real projects
    • Relationships between subsystems/ relationships between teams
  • Afternoon: Distilling the Core Domain
    • Distinguishing the core from the mass
    • Ways of focusing effort
    • Clarifying a shared vision
    • Setting up a project for success

Day 3: Implementation Concerns and Supple Design

  • Expressing a model in software
  • Building-block patterns (entities, value objects, repositories, etc.)
  • Test-first development as a modelling process
  • Patterns and techniques to tighten models and their connection to code.
  • Making code obvious, easier to use and change
  • Modelling for transactional integrity and distributed systems

Day 4: Bringing it Together

  • Deeper into Strategic Design
  • Design/code challenge – model supple design with context map
  • In-depth discussion and Q&A, relating all topics to each other and to your own work

Recommended Background

  • Some exposure to medium to large-scale software development in a multi-team environment.
  • Basic knowledge of object modelling and design.
  • We encourage non-technical managers and analysts to attend. A mixed class is ideal.

Sessions & Booking

Upcoming Sessions

No upcoming sessions yet.

Get in touch and we'll keep you posted.

Book for your team

We can organise this workshop privately for your company, tailored to your domain.

Contact us

Stay in the Loop

Get notified about new workshops, early-bird discounts, and exclusive content on DDD, Architecture, and Software Design.

No spam, unsubscribe anytime. Join 5,000+ developers.