Skip to main content
00:00/00:00
Lecture 41 of 95

Getting Acquainted with Value Objects

Download Course (Free)

Course Content

0 / 95 completed
Section 1: Introducing Domain-Driven Design9 videos

What to Expect from This Course and This Module

1m

Understanding the Value of Domain-Driven Design

2m

Introduction and Overview

1m

Exploring the Benefits and Potential Drawbacks of DDD

3m

Gaining a High-Level Understanding of DDD

4m

Introducing Our Sample Application

3m

Exploring the Sample Apps High-level Structure

4m

Review and Resources

1m

Inspecting a Mind Map of Domain-Driven Design

4m
Section 2: Modeling Problems in Software16 videos

Introducing Our Domain

1m

Introduction and Overview

1m

Planning Ahead to Learn About the Domain

1m

Reviewing Key Takeaways from Meeting with Domain Experts

2m

Conversation with a Domain Expert-Exploring the Domain and Its Subdomains

2m

Taking a First Pass at Modeling our Subdomain

1m

Conversation with a Domain Expert-Exploring the Scheduling Subdomain

4m

Using Bounded Contexts to Untangle Concepts that Appear to Be Shared

3m

Addressing the Question of Separate Databases per Bounded Context

2m

Specifying Bounded Contexts in our Application

1m

Understanding the Ubiquitous Language of a Bounded Context

3m

Introducing Context Maps

5m

Conversation with Eric Evans on Subdomains and Bounded Contexts

1m

Conversation with a Domain Expert- Working on our Ubiquitous Language

5m

Review and Resources

1m

Reviewing Important Concepts from This Module

4m
Section 3: Course Overview1 videos

Course Overview

2m
Section 4: Elements of a Domain Model13 videos

Introduction and Overview

1m

The Importance of Understanding DDD Terms

1m

Focusing on the Domain

2m

Identifying Events Leads to Understanding Behaviors

2m

Understanding Entities

1m

Comparing Anemic and Rich Domain Models

2m

Differentiating CRUD from Complex Problems that Benefit from DDD

1m

Switching Between Contexts in a UI

3m

Using GUIDs or Ints for Identity Values

2m

Talking with Eric Evans About the Responsibility of Entities

1m

Synchronizing Data Across Bounded Contexts

2m

Review and Resources

2m

Implementing Entities in Code

7m
Section 5: Understanding Value Objects Services in the Model7 videos

Introduction and Overview

1m

Getting Acquainted with Value Objects

1mNow Playing

Recognizing Commonly Used Value Objects

3m

Understanding Domain Services

2m

Review and Resources

3m

Implementing Value Objects in Code

5m

Getting More Insight from Eric Evans and Vaughn Vernon

3m
Section 6: Tackling Complexity with Aggregates13 videos

Introduction and Overview

1m

Tackling Data Complexity

2m

Handling Relationships that Span Aggregates

2m

Introducing Aggregates and Aggregate Roots

2m

Considering Associations in Aggregates

5m

Using Invariants to Better Understand Our Aggregate

1m

Evolving the Appointments Aggregate

1m

Sharing Our Tips for Aggregate Design

1m

Recognizing Signs of a Misidentified Aggregate

3m

Review and Resources

2m

Modeling Breakthroughs and Refactoring

1m

Considering Schedule as Our New Aggregate

1m

Exploring the Schedule Aggregate in Our Application

8m
Section 7: Working with Repositories12 videos

Introduction and Overview

1m

Repository Benefits

1m

Introducing Repositories

3m

Repository Tips

2m

Avoiding Repository Blunders

2m

Addressing the Debates Around Using Repositories

3m

Returning IQueryables-Pros and Cons

6m

Considering Generic Repositories and Interfaces

4m

Exploring Repositories in our Application

8m

Introducing the Specification Pattern

6m

Using Specifications with Repositories in Our App

8m

Review and Resources

2m
Section 8: Adding in Domain Events and Anti-corruption Layers8 videos

Introduction and Overview

1m

Introducing Domain Events

2m

Identifying Domain Events in Our System

1m

Designing Domain Events

1m

Exploring Domain Events in Our Application

9m

Applying Domain Events to a Simple App

11m

Introducing Anti-Corruption Layers

3m

Review and Resources

2m
Section 9: Evolving the Application Easily Thanks to DDD16 videos

Introduction and Overview

1m

Addressing a New Feature with the Domain Expert

2m

Planning Our Implementation Steps

1m

Reviewing Our Current System Design

2m

Introducing Message Queues

3m

Sending a Message to the Queue

2m

Reading From the Message Queue and Acting on the Message

4m

Using Multiple Queues to Handle Various Communications

3m

Debugging to See the Detailed Implementation in Code

11m

Sharing Some Tips for Extending and Running the Sample Application

2m

Considering Microservices

2m

Considering the UI in the Domain Design

2m

Modeling with Event Storming and Other Techniques

2m

Lessons Learned Since Our 2014 Course

3m

Eric Evans on the Fallacy of Perfectionism

1m

Review and Resources

3m