Course Code: ddd
Duration: 21 hours
Prerequisites:
  • An understanding of object-oriented programming and design patterns
  • Experience with C# and .NET Core
  • Basic knowledge of databases and SQL

Audience

  • Developers
  • Architects
  • Analysts
Overview:

Domain Driven Design (DDD) is a software development approach that focuses on the domain and the business logic, rather than the technical details. DDD helps to create software that is more maintainable, testable, and aligned with the business needs and goals.

This instructor-led, live training (online or onsite) is aimed at intermediate-level developers, architects, and analysts who wish to learn and apply DDD concepts and practices to their software projects.

By the end of this training, participants will be able to:

  • Grasp core DDD concepts (bounded contexts, entities, etc.) and their application in software projects.
  • Apply strategic DDD to define and design the domain model, identify subdomains, and establish boundaries.
  • Implement tactical DDD using patterns such as CQRS, factories, and event sourcing.
  • Refactor and modernize legacy systems effectively with DDD techniques.
  • Design and implement product, domain, and team-oriented architectures.
  • Utilize data mesh to create a domain-oriented data platform supporting data discovery and governance.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.
Course Outline:

Introduction

  • What is Domain Driven Design (DDD) and its benefits?
  • DDD vs other approaches
  • Overview of DDD concepts and project structure

Tactical Domain-Driven Design

  • Elements of a domain model
  • Implementing entities, value objects, aggregates, repositories, and domain services
  • Using factories, specifications, CQRS, and event sourcing

Strategic Domain-Driven Design

  • Context map patterns
  • Designing the domain model with event storming and domain storytelling
  • Identifying and classifying subdomains
  • Establishing boundaries and relationships with patterns like bounded contexts

DDD & Legacy Workshop

  • Challenges and opportunities of legacy systems
  • Analyzing and understanding legacy systems with tools like NDepend
  • Refactoring and modernizing legacy systems using techniques such as strangler pattern

Product, Domain & Team-oriented Architecture

  • Benefits and challenges of product, domain, and team-oriented architecture
  • Designing and implementing such architectures with patterns like microservices
  • Organizing and collaborating with teams
  • Ensuring quality and consistency with automated testing and continuous integration

Data Mesh – Domain-Oriented Data

  • Problems with traditional data platforms
  • Introduction to data mesh
  • Implementing a domain-oriented data platform supporting data discovery, access, and governance
  • Technologies like Apache Kafka, Apache Spark, and GraphQL in data mesh

Summary and Next Steps

Sites Published:

United Arab Emirates - Domain Driven Design: Concepts and Practices

Qatar - Domain Driven Design: Concepts and Practices

Egypt - Domain Driven Design: Concepts and Practices

Saudi Arabia - Domain Driven Design: Concepts and Practices

South Africa - Domain Driven Design: Concepts and Practices

Brasil - Domain Driven Design: Concepts and Practices

Canada - Domain Driven Design: Concepts and Practices

中国 - Domain Driven Design: Concepts and Practices

香港 - Domain Driven Design: Concepts and Practices

澳門 - Domain Driven Design: Concepts and Practices

台灣 - Domain Driven Design: Concepts and Practices

USA - Domain Driven Design: Concepts and Practices

Österreich - Domain Driven Design: Concepts and Practices

Schweiz - Domain Driven Design: Concepts and Practices

Deutschland - Domain Driven Design: Concepts and Practices

Czech Republic - Domain Driven Design: Concepts and Practices

Denmark - Domain Driven Design: Concepts and Practices

Estonia - Domain Driven Design: Concepts and Practices

Finland - Domain Driven Design: Concepts and Practices

Greece - Domain Driven Design: Concepts and Practices

Magyarország - Domain Driven Design: Concepts and Practices

Ireland - Domain Driven Design: Concepts and Practices

Luxembourg - Domain Driven Design: Concepts and Practices

Latvia - Domain Driven Design: Concepts and Practices

España - Domain Driven Design: Concepts and Practices

Italia - Domain Driven Design: Concepts and Practices

Lithuania - Domain Driven Design: Concepts and Practices

Nederland - Domain Driven Design: Concepts and Practices

Norway - Domain Driven Design: Concepts and Practices

Portugal - Domain Driven Design: Concepts and Practices

România - Domain Driven Design: Concepts and Practices

Sverige - Domain Driven Design: Concepts and Practices

Türkiye - Domain Driven Design: Concepts and Practices

Malta - Domain Driven Design: Concepts and Practices

Belgique - Domain Driven Design: Concepts and Practices

France - Domain Driven Design: Concepts and Practices

日本 - Domain Driven Design: Concepts and Practices

Australia - Domain Driven Design: Concepts and Practices

Malaysia - Domain Driven Design: Concepts and Practices

New Zealand - Domain Driven Design: Concepts and Practices

Philippines - Domain Driven Design: Concepts and Practices

Singapore - Domain Driven Design: Concepts and Practices

Thailand - Domain Driven Design: Concepts and Practices

Vietnam - Domain Driven Design: Concepts and Practices

India - Domain Driven Design: Concepts and Practices

Argentina - Domain Driven Design: Concepts and Practices

Chile - Domain Driven Design: Concepts and Practices

Costa Rica - Domain Driven Design: Concepts and Practices

Ecuador - Domain Driven Design: Concepts and Practices

Guatemala - Domain Driven Design: Concepts and Practices

Colombia - Domain Driven Design: Concepts and Practices

México - Domain Driven Design: Concepts and Practices

Panama - Domain Driven Design: Concepts and Practices

Peru - Domain Driven Design: Concepts and Practices

Uruguay - Domain Driven Design: Concepts and Practices

Venezuela - Domain Driven Design: Concepts and Practices

Polska - Domain Driven Design: Concepts and Practices

United Kingdom - Domain Driven Design: Concepts and Practices

South Korea - Domain Driven Design: Concepts and Practices

Pakistan - Domain Driven Design: Concepts and Practices

Sri Lanka - Domain Driven Design: Concepts and Practices

Bulgaria - Domain Driven Design: Concepts and Practices

Bolivia - Domain Driven Design: Concepts and Practices

Indonesia - Domain Driven Design: Concepts and Practices

Kazakhstan - Domain Driven Design: Concepts and Practices

Moldova - Domain Driven Design: Concepts and Practices

Morocco - Domain Driven Design: Concepts and Practices

Tunisia - Domain Driven Design: Concepts and Practices

Kuwait - Domain Driven Design: Concepts and Practices

Oman - Domain Driven Design: Concepts and Practices

Slovakia - Domain Driven Design: Concepts and Practices

Kenya - Domain Driven Design: Concepts and Practices

Nigeria - Domain Driven Design: Concepts and Practices

Botswana - Domain Driven Design: Concepts and Practices

Slovenia - Domain Driven Design: Concepts and Practices

Croatia - Domain Driven Design: Concepts and Practices

Serbia - Domain Driven Design: Concepts and Practices

Bhutan - Domain Driven Design: Concepts and Practices

Nepal - Domain Driven Design: Concepts and Practices

Uzbekistan - Domain Driven Design: Concepts and Practices