Domain-Driven Design in Practice
برچسب ها:
Domain-Driven-Design |Design Patterns |Video |
Pluralsight
Vladimir Khorikov
2019
4h 19m
English
در حالی که طراحی دامنه محور دیدگاههای بسیار ارزشمندی را در مورد توسعه پروژههای نرم افزاری سطح سازمانی ارائه میدهد، اغلب چگونگی بکارگیری آنها در عمل مشخص نیست. در دوره ویدیویی Domain-Driven Design in Practice موسسه Pluralsight که توسط Vladimir Khorikov تدریس شده است، ما از همان ابتدا با استفاده از اصول DDD کل مراحل ساخت یک برنامه را طی خواهیم کرد.
فیلم آموزشی «طراحی دامنه محور در عمل» موسسه پلورال سایت که توسط Vladimir Khorikov تدریس شده است دارای زیر نویس انگلیسی(تولید شده به شکل خودکار) است.
Table of Contents:
Introduction
- Getting Started
- Course Outline and Prerequisites
- Area of Application for Domain-Driven Design
- Why Domain-Driven Design?
- Main Concepts of Domain-Driven Design
- Domain-Driven Design Is Not Only About Writing Code
- Onion Architecture and Domain Isolation
- Modeling Best Practices
- Domain-Driven Design and Unit Testing
- The Problem Domain Introduction
- Summary
Starting with the First Bounded Context
- Introduction
- Vocabulary Used
- Problem Description
- Starting with Snack Machine
- Recap: Starting with Snack Machine
- Entities vs. Value Objects
- How to Recognize a Value Object in Your Domain Model?
- Entity Base Class
- Demo: Entity Base Class
- Recap: Entity Base Class
- Value Object Base Class
- Recap: Value Object Base Class
- Value Objects vs. .NET Value Types
- When to Write Unit Tests
- Implementing the Money Class
- Building up the Money Class
- Implementing the Snack Machine Class
- Recap: Implementing Money and Snack Machine
- Summary
Introducing UI and Persistence Layers
- Introduction
- Application Services and UI in the Onion Architecture
- Adding UI for the Snack Machine
- Recap: Adding UI for the Snack Machine
- Designing the Database for the Snack Machine
- Introducing an ORM
- ID Generation Strategies
- Mapping Strategies
- Adjusting the Domain Layer for the Use with ORM
- Putting It All Together
- Summary
Extending the Bounded Context with Aggregates
- Introduction
- Problem Description
- Starting with the Implementation
- Aggregates
- How to Find Boundaries for Aggregates
- Aggregate Root Base Class
- Refactoring the Snack Machine Aggregate
- Recap: Refactoring the Snack Machine Aggregate
- Implementing Missing Requirements
- Revealing a Hidden Requirement
- Recap: Revealing a Hidden Requirement
- Summary
Introducing Repositories
- Introduction
- Adjusting the Database for the New Entities
- Repositories
- Repository Base Class
- Setting up Mappings for the Aggregates
- Refactoring the Snack Entity
- Adjusting the User Interface
- Summary
Introducing the Second Bounded Context
- Introduction
- New Task: an ATM Model
- Bounded Contexts
- Bounded Contexts and Sub-domains
- Choosing Boundaries for Bounded Contexts
- Drawing a Context Map
- Types of Physical Isolation
- Communication Between Bounded Contexts
- Code Reuse Between Bounded Contexts
- Implementing ATM Domain Logic
- Adjusting the database
- Adding UI
- Summary
Working with Domain Events
- Introduction
- New Requirements
- Introducing a New Bounded Context
- Implementation: the First Attempt
- Domain Events
- Introducing a Domain Event
- Physical Delivery
- Building up Management Bounded Context
- Handling Domain Events with the Classic Approach
- Recap: Classic Approach
- A Better Approach to Handling Domain Events
- Recap: a Better Approach
- Using Domain Events to Communicate Between Microservices
- Adding Interface for the Management Bounded Context
- Summary
Looking Forward to Further Enhancements
- Introduction
- Always Valid vs. Not Always Valid
- Factories
- Domain Services vs. Application Services
- Anemic Domain Model Anti-pattern
- Fat Entities Anti-pattern
- Repository Anti-patterns
- Mechanical Approach to DDD
- Further Enhancements
- Module Summary
- Resource List
- Course Summary
می پسندم
به درد نمی خوره