Course Details

Domain Driven Design

Using Object Oriented Programming as a basis, Domain-Driven Design (DDD) introduces constructs and techniques that make software design an development seamless across multiple teams in an organization. DDD also deals with the challenges of understanding a problem space and the even bigger challenge of communicating that understanding.

Importantly, DDD also encourages the inclusion of other areas such as Test-Driven Development (TDD), usage of patterns, and continuous refactoring.

There are two distinct but inter-operating parts in DDD. The analytical part is about discovering the top-level architecture, using the ubiquitous language to dig out bounded contexts and their relationships.

The strategic part is about giving each bounded context the most appropriate architecture. In this course we spend time looking at the parts to apply DDD in your own organizations.

  • Introduction to DDD
  • Domain Model
  • Bounded Context and Ubiquitous Language
  • Entities and Value Objects
  • Domain Events
  • Aggregates and Aggregate roots
  • Services ,Factories and Repositories
  • Layered Architecture
  • Cross cutting concerns
  • Documentation DDD in your organizations
  • Learn the fundamentals of Domain-Driven Design (DDD)
  • Learn how to do strategic modelling
  • Learn how to do tactical domain modelling
  • Understanding your business domain and building a ubiquitous language
  • Learn about elements of a domain model, aggregates in Domain-Driven Design, and repositories
  • Learn how to protect the domain knowledge from corruption by other domains and technical sub-domains
  • Learn modeling problems, and learn about technical components of DDD, and how to manage complexity
  • Design and creating highly expressive business models
  • Weekend Class: 09.00 am - 14.00 pm
  • Midweek Class: 09.00 am - 20.00 pm