تصورات غلط زیادی در مورد الگوی CQRS وجود دارد؛ به ویژه هنگامی که از آن در پروژههای نرم افزاری واقعی استفاده شود. در دوره ویدیویی CQRS in Practice موسسه Pluralsight که توسط Vladimir Khorikov تدریس شده است، شما همه چیز را دربارهی CQRS به همراه event sourcing، تنظیم پایگاه داده برای خواندنها و نوشتنها و موارد دیگر یاد میگیرید.
در ابتدا شما میآموزید که CQRS دقیقا چیست، چه اصولی در پشت آن وجود دارد و چه مزایایی را میتواند برای پروژهی شما فراهم کند. سپس تصورات غلط رایج و ضد الگوهای حول CQRS را بررسی خواهید کرد. سرانجام، یک پیاده سازی دقیق و گام به گام از این الگو را در عمل مشاهده خواهید کرد. در پایان این دوره، شما درکی بنیادین از الگوی CQRS و چگونگی پیاده سازی آن در پروژههای نرم افزاری خود خواهید داشت.
فیلم آموزشی «CQRS در عمل» موسسه پلورالسایت که توسط Vladimir Khorikov تدریس شده است، دارای زیرنویس انگلیسی است.
Table of Contents:
Course Overview
- Course Overview
Introduction
- Introduction
- CQRS and Its Origins
- Why CQRS?
- CQRS in the Real World
- Summary
Introducing a Sample Project
- Introduction
- Problem Domain Introduction
- Application Code Introduction
- Application Code Drawbacks
- Summary
Refactoring Towards a Task-based Interface
- Introduction
- CRUD-based Interface
- Task-based Interface
- Untangling the Update Method
- Recap: Untangling the Update Method
- Task-based User Interface
- Dealing with Create and Delete Methods
- Summary
Segregating Commands and Queries
- Introduction
- Introducing a First Command
- Commands in CQS vs. Commands in CQRS
- Commands and Queries in CQRS
- Commands and Queries in the Onion Architecture
- Commands vs. DTOs
- Leveraging ASP.NET Core Dependency Injection to Resolve Handlers
- Introducing a Query
- Finishing up the Refactoring
- Recap: Introducing Commands and Queries
- Summary
Implementing Decorators upon Command and Query Handlers
- Introduction
- New Requirement: Database Retries
- Introducing a Database Retry Decorator
- Decorator Pattern
- Introducing Another Decorator
- Streamlining the Decorator Configuration
- Recap: Streamlining the Decorator Configuration
- Decorators vs. ASP.NET Middleware
- Command and Query Handlers Best Practices
- Summary
Simplifying the Read Model
- Introduction
- The State of the Read Model
- Separation of the Domain Model
- Simplifying the Read Model
- Recap: Simplifying the Read Model
- The Read Model and the Onion Architecture
- Summary
Introducing a Separate Database for Queries
- Introduction
- Meet Scalability
- Separation at the Data Level in the Real World
- Designing a Database for Queries
- Creating a Database for Queries
- Recap: Creating a Database for Queries
- Scalability
- A Word of Caution Regarding the Database for Reads
- Summary
Synchronizing the Commands and Queries Databases
- Introduction
- State-driven Projections
- Synchronous State-driven Projections
- Event-driven Projections
- Consistency
- Eventual Consistency
- Versioning
- CQRS and the CAP Theorem
- Summary
CQRS Best Practices and Misconceptions
- Introduction
- CQRS and Event Sourcing
- Evolutionary Design
- Using Commands and Queries from Handlers
- One-way Commands
- CQRS vs. the Specification Pattern
- Resource List
- Course Summary