اگر میخواهید که در ساختن برنامههای تجاری بی نقص موفق شوید، داشتن یک مدل دامنه بسیار غنی و کپسوله شده ضروری است. دوره ویدیویی Refactoring from Anemic Domain Model Towards a Rich One موسسه Pluralsight که توسط Vladimir Khorikov تدریس شده است، قصد دارد که چگونگی پیاده سازی صحیح آن را به شما نشان دهد.
ابتدا میآموزید که چرا Anemic domain یک ضد الگو است و رابطه آن با برنامه نویسی تابعی را هم بررسی میکنید. سپس در مورد کپسوله سازی و نحوه رسیدن به آن را در مدل دامنه خودتان یاد خواهید گرفت. در پایان، تعدادی تکنیک refactoring مهم را نیز بررسی خواهید کرد. در پایان این دوره، تکنیک هایی عملی را یاد میگیرید که به شما کمک میکنند تا این ضد الگو را در کدهای خودتان پیدا کنید و آنها را به مدلی بی عیب و نقص ریفکتور کنید.
فیلم آموزشی «ریفکتور کردن مدل دامنه Anemic به یک مدل دامنه غنی» موسسه پلورال سایت که توسط Vladimir Khorikov تدریس شده است، دارای فایل Transcript انگلیسی است.
Table of Contents:
Course Overview
- Course Overview
Introduction
- Getting Started
- Anemic Domain Model
- Encapsulation
- Anemic Domain Model and Encapsulation
- Anemic Domain Model Applicability
- Anemic Domain Model and Functional Programming
- Summary
Introducing an Anemic Domain Model
- Introduction
- Domain Model Introduction
- Application Code Introduction
- Application Code Drawbacks
- Summary
Decoupling the Domain Model from Data Contracts
- Introduction
- Domain Model and Data Contracts
- Extracting Output Data Contracts
- Identifying a Security Issue
- Extracting Input Data Contracts
- Recap: Extracting Input Data Contracts
- Summary
Using Value Objects as Domain Model Building Blocks
- Introduction
- Importance of Using Value Objects
- Identifying Value Objects
- Recap: Identifying Value Objects
- Gathering Validation Rules into a Single Place
- Recap: Gathering Validation Rules into a Single Place
- Fixing Persistence
- Introducing Dollars Value Object
- Recap: Introducing Dollars Value Object
- Introducing Expiration Date Value Object
- Summary
Pushing Logic Down from Services to Domain Classes
- Introduction
- Code Overview
- Refactoring Customer: Constructor
- Refactoring Customer: Collection
- Recap: Refactoring Customer's Constructor and Collection
- Refactoring Customer: Status
- Recap: Refactoring Customer Status
- Refactoring Purchased Movie
- Pushing Logic Down: Promote Customer
- Pushing Logic Down from Services to Entities
- Recap: Pushing Logic Down from Services to Entities
- Refactoring Movie
- Summary
Organizing the Application Services Layer
- Introduction
- Application Services Layer
- Repositories and Unit of Work
- Recap: Repositories and Unit of Work
- Working with Exceptions
- Introducing Envelope
- Simplifying the Controller
- Changing the Project Structure
- Summary
Domain Modeling Best Practices
- Introduction
- The YAGNI Principle
- Sharing Domain Logic Between Projects
- Domain Model Encapsulation
- Domain Model Isolation
- Module Summary
- Resource List
- Course Summary