Pluralsight_Domain-Driven_Design_in_Practice

در این آموزش تصویری با طراحی مبتنی بر دامنه (Domain-Driven) آشنا می شوید.
این دوره آموزشی محصول موسسه Pluralsight است.

سرفصل های دوره:

  • نحوه ساخت دامنه
  • مفاهیم اولیه دامنه
  • طراحی دامنه محور
  • نحوه صحیح کدنویسی
  • کار با Onion Architecture
  • کار با Unit Testing
  • حل مشکلات کار با دامنه
  • شروع کار با Snack Machine
  • ساخت کلاس پایه
  • کار با برنامه های دات نت
  • نحوه تست برنامه
  • نحوه اجرای کلاس
  • معرفی UI
  • افزودن رابط کاربری در Onion Architecture
  • افزودن رابط کاربری در Snack Machine
  • طراحی پایگاه داده
  • معرفی ORM
  • تنظیم دامنه برای استفاده از ORM
  • نحوه تشریح مسئله
  • معرفی Repositories
  • نصب و راه اندازی پایگاه داده
  • نحوه ساخت کلاس ها
  • راه اندازی رابط کاربری
  • طراحی زیر دامنه
  • ارتباط بین بسترهای نرم افزاری
  • نصب و راه اندازی پایگاه داده
  • اضافه کردن رابط کاربری
    کار با دامنه و رویدادها
  • نحوه ساخت رویدادها
  • نحوه استفاده از دامنه
  • نحوه ارتباط بین Microservice ها
  • رویکرد مکانیکی در DDD
  • و…

عنوان دوره: Pluralsight Domain-Driven Design in Practice
سطح: متوسط
مدت زمان: 4 ساعت و 19 دقیقه
نویسنده: Vladimir Khorikov


توضیحات:

Pluralsight Domain-Driven Design in Practice

Vladimir Khorikov
4h 19m
Intermediate

A descriptive, in-depth walk-through for applying Domain-Driven Design principles in practice.
While Domain-Driven Design offers invaluable insights regarding developing enterprise-level software projects, it is often unclear how to apply them in practice. In this course, we'll go through the whole process of building an application from the very beginning using the DDD principles.

Introduction
29m 31s
Getting Started
1m 20s
Course Outline and Prerequisites
2m 17s
Area of Application for Domain-Driven Design
3m 40s
Why Domain-Driven Design?
2m 29s
Main Concepts of Domain-Driven Design
3m 31s
Domain-Driven Design Is Not Only About Writing Code
2m 55s
Onion Architecture and Domain Isolation
4m 28s
Modeling Best Practices
1m 7s
Domain-Driven Design and Unit Testing
2m 45s
The Problem Domain Introduction
3m 23s
Summary
1m 31s
Starting with the First Bounded Context
46m 18s
Introduction
0m 30s
Vocabulary Used
1m 26s
Problem Description
0m 54s
Starting with Snack Machine
3m 59s
Recap: Starting with Snack Machine
1m 20s
Entities vs. Value Objects
3m 15s
How to Recognize a Value Object in Your Domain Model?
2m 50s
Entity Base Class
1m 44s
Demo: Entity Base Class
3m 28s
Recap: Entity Base Class
0m 32s
Value Object Base Class
1m 47s
Recap: Value Object Base Class
0m 57s
Value Objects vs. .NET Value Types
1m 14s
When to Write Unit Tests
1m 47s
Implementing the Money Class
5m 30s
Building up the Money Class
4m 34s
Implementing the Snack Machine Class
5m 22s
Recap: Implementing Money and Snack Machine
1m 56s
Summary
3m 5s
Introducing UI and Persistence Layers
33m 20s
Introduction
0m 29s
Application Services and UI in the Onion Architecture
2m 18s
Adding UI for the Snack Machine
9m 29s
Recap: Adding UI for the Snack Machine
1m 45s
Designing the Database for the Snack Machine
3m 4s
Introducing an ORM
2m 45s
ID Generation Strategies
3m 21s
Mapping Strategies
1m 43s
Adjusting the Domain Layer for the Use with ORM
3m 49s
Putting It All Together
3m 5s
Summary1m 28s
Extending the Bounded Context with Aggregates
35m 57s
Introduction
0m 24s
Problem Description
1m 13s
Starting with the Implementation
4m 43s
Aggregates
3m 52s
How to Find Boundaries for Aggregates
4m 41s
Aggregate Root Base Class
1m 42s
Refactoring the Snack Machine Aggregate
7m 18s
Recap: Refactoring the Snack Machine Aggregate
1m 24s
Implementing Missing Requirements
1m 53s
Revealing a Hidden Requirement
6m 4s
Recap: Revealing a Hidden Requirement
0m 48s
Summary
1m 49s
Introducing Repositories
20m 53s
Introduction
0m 18s
Adjusting the Database for the New Entities
0m 44s
Repositories
2m 47s
Repository Base Class
2m 46s
Setting up Mappings for the Aggregates
3m 2s
Refactoring the Snack Entity
3m 5s
Adjusting the User Interface
6m 47s
Summary
1m 20s
Introducing the Second Bounded Context
33m 53s
Introduction
0m 36s
New Task: an ATM Model
0m 59s
Bounded Contexts
2m 25s
Bounded Contexts and Sub-domains
2m 2s
Choosing Boundaries for Bounded Contexts
3m 43s
Drawing a Context Map
1m 37s
Types of Physical Isolation
3m 45s
Communication Between Bounded Contexts
2m 2s
Code Reuse Between Bounded Contexts
4m 11s
Implementing ATM Domain Logic
5m 26s
Adjusting the database
1m 10s
Adding UI
4m 5s
Summary
1m 47s
Working with Domain Events
39m 39s
Introduction
0m 21s
New Requirements
0m 56s
Introducing a New Bounded Context
2m 42s
Implementation: the First Attempt
2m 50s
Domain Events
2m 2s
Introducing a Domain Event
3m 24s
Physical Delivery
1m 3s
Building up Management Bounded Context
3m 9s
Handling Domain Events with the Classic Approach
5m 14s
Recap: Classic Approach
2m 32s
A Better Approach to Handling Domain Events
6m 43s
Recap: a Better Approach
1m 11s
Using Domain Events to Communicate Between Microservices
1m 1s
Adding Interface for the Management Bounded Context
3m 25s
Summary
2m 58s
Looking Forward to Further Enhancements
20m 6s
Introduction
0m 26s
Always Valid vs. Not Always Valid
3m 41s
Factories
1m 35s
Domain Services vs. Application Services
1m 49s
Anemic Domain Model Anti-pattern
1m 30s
Fat Entities Anti-pattern
1m 19s
Repository Anti-patterns
2m 45s
Mechanical Approach to DDD
1m 16s
Further Enhancements
1m 43s
Module Summary
1m 45s
Resource List1m
 24s
Course Summary
0m 48s