7878  Reviews star_rate star_rate star_rate star_rate star_half

Introduction to Domain Driven Design

This 2 day course covers the following topics Domain Driven Design concepts Strategic domain driven design Domain Driven Design Building Blocks Application Architecture under Domain Driven Design

Read More
$1,460 USD
Course Code WA2594
Duration 2 days
Available Formats Classroom, Virtual

This 2 day course covers the following topics

  • Domain Driven Design concepts
  • Strategic domain driven design
  • Domain Driven Design Building Blocks
  • Application Architecture under Domain Driven Design

Course Details

Outline

Chapter 1. Domain Driven Design Concepts

  • Domain Driven Design - What is it?
  • Domain Driven Design - What it's Not
  • Complex Problem Space
  • Design Effort
  • Division of Labor
  • Tactical Design
  • Strategic Design
  • Separate Languages
  • Ubiquitous Language 1/2
  • Ubiquitous Language 2/2
  • Capturing the Ubiquitous Language 1/3
  • Capturing the Ubiquitous Language 2/3
  • Capturing the Ubiquitous Language 3/3
  • Domain
  • Domain Examples
  • Types of Domains
  • Sub-Domains
  • Context
  • Model
  • Domain Model Example - Bookstore
  • Bookstore Domain Model
  • Domain Model Example - Custom Cabinet Business
  • Summary

Chapter 2. Strategic Domain Driven Design

  • Strategic Design
  • The Domain Model
  • Creating the Model
  • Separate Concerns
  • Domains vs. Contexts
  • Bounded Contexts
  • Bounded Contexts Stand Alone
  • Analyzing Overlap in Bounded Contexts
  • Resolving Overlaps with Contexts Mapping
  • Mapping Types
  • Partnership Mapping
  • Shared Kernel
  • Cross Cutting Concerns
  • Customer-Supplier
  • Conformist
  • Anti corruption-layer
  • Open Host Service
  • Separate Ways
  • Big Ball of Mud (BBOM)
  • Integration via Database
  • Summary

Chapter 3. Domain Driven Design Building Blocks

  • Building Blocks
  • Entity Objects
  • Value Object
  • Value Object - Examples
  • Aggregate 1/2
  • Aggregate 2/2
  • An Example Aggregate 1/2
  • An Example Aggregate 2/2
  • Module
  • A Module Example
  • Levels of Granularity
  • Domain Event 1/2
  • Domain Event 2/2
  • Domain Event Advantages
  • Services
  • Service Examples
  • Repository
  • Generic Repository Interface
  • Domain Repository Interface
  • Factory
  • Factory Example
  • Summary

Chapter 4. Application Architecture Under Domain Driven Design

  • Overall Architecture
  • Interface/Presentation Layer
  • Application Layer
  • Domain Layer
  • Domain Layer - In Practice
  • Infrastructure (Services) Layer
  • Technologies to use with Domain Driven Design
  • Dependency Injection (DI)
  • Aspect Oriented Programming (AOP)
  • Aspect Oriented Programming (AOP)
  • Java Persistence API (JPA)
  • Summary

Chapter 5. Microservices

  • What is a "Microservice"?
  • One Helpful Analogy
  • SOA - Microservices Relationship
  • ESB - Microservices Relationship
  • Traditional Monolithic Designs and Their Role
  • Disadvantages of Monoliths
  • Moving from a Legacy Monolith
  • When Moving from a Legacy Monolith
  • The Driving Forces Behind Microservices
  • How Can Microservices Help You?
  • The Microservices Architecture
  • Utility Microservices at AWS
  • Microservices Inter-connectivity
  • The Data Exchange Interoperability Consideration
  • Managing Microservices
  • Implementing Microservices
  • Embedding Databases in Java
  • Microservice-Oriented Application Frameworks and Platforms
  • Summary

Chapter 6. Hexagonal Architecture and Microservices

  • A Different View of Application Architecture
  • Traditional Layers for Traditional User Interface
  • Layers with DDD
  • Modern Interaction Methods
  • Modern Data Storage
  • Hexagonal Architecture – Ports and Adapters
  • DDD in Hexagonal Architecture
  • The Adapter Pattern
  • The Adapter Pattern Structure
  • Adapter Pattern Behavior
  • Entities, Values, and Aggregates
  • Repositories – Overview
  • Collection Oriented Repositories
  • Persistence Oriented Repositories
  • Domain Services
  • Domain Events
  • Discovering Events
  • Modeling Events
  • Events and Bounded Contexts
  • Publishing Domain Events
  • Storing Domain Events
  • Forwarding Domain Events
  • Integration Between Bounded Contexts
  • Mapping to Microservices
  • Communication Styles for Microservices
  • User Interfaces – Crossing the System Boundary
  • UI Communication Strategies
  • Integration Between Bounded Contexts Revisited – Options
  • Integration Via RESTful Services
  • Integration Via Binary Formats
  • Integration Via Messaging
  • Summary

Lab Exercises

  • Lab 1. Domain Driven Design Concepts
  • Lab 2. Strategic Domain Driven Design
  • Lab 3. Domain Driven Design Project
|
View Full Schedule