Domain-Driven Design Distilled
این کتاب برای همهی علاقه مندان به یادگیری جنبهها و ابزارهای مهم Domain Driven Design است که میخواهند به سرعت آن را فرا بگیرند. اغلب خوانندگان این کتاب طراحان نرم افزار و توسعه دهندگان نرم افزار هستند که میخواهند DDD را در پروژهها به صورت عملی پیاده سازی کنند. اغلب، توسعه دهندگان به زیبایی DDD به سرعت پی میبرند و مشتاقانه جذب الگوی قدرتمندش میشوند. با این حال من مطالب را برای مدیران اجرایی، کارشناسان حوزه، مدیران، تحلیل گران کسب و کار، معماران اطلاعات و تست کنندگان، قابل فهم کرده ام. برای کسانی که در صنعت فناوری اطلاعات (IT) و محیطهای تحقیق و توسعه هستند واقعا محدودیتی برای بهره بردن از خواندن این کتاب وجود ندارد.
اگر شما مشاور هستید و به مشتری خود توصیه کرده اید که از DDD استفاده کند، سریعا این کتاب را برای ذینفعان عمده، به عنوان راه حلی ارائه کنید. اگر شما توسعه دهندگانی دارید که شاید تازه کار، متوسط و یا حتی ارشد باشند و بر روی پروژه هایتان کار میکنند در حالی که با DDD آشنا نیستند ولی میخواند سریع آن را به کار بندند، مطمئن شوید که این کتاب را میخوانند. با خواندن این کتاب حداقل، همهی ذینفعان و توسعه دهندگان پروژه، واژگان و ابزارهای اصلی DDD که مورد استفاده قرار میگیرند را یاد میگیرند. این کار آنها را قادر میسازد تا چیزها را در حین توسعه پروژه به صورت معنا داری با یکدیگر به اشتراک بگذارند.
Table of Contents
About This E-Book
Title Page
Copyright Page
Dedication Page
Contents
Preface
Who Is This Book For?
What This Book Covers
Conventions
Acknowledgments
About the Author
Chapter 1. DDD for Me
Will DDD Hurt?
Good, Bad, and Effective Design
Strategic Design
Tactical Design
The Learning Process and Refining Knowledge
Let’s Get Started!
Chapter 2. Strategic Design with Bounded Contexts and the Ubiquitous Language
Domain Experts and Business Drivers
Case Study
Fundamental Strategic Design Needed
Challenge and Unify
Developing a Ubiquitous Language
Putting Scenarios to Work
What about the Long Haul?
Architecture
Summary
Chapter 3. Strategic Design with Subdomains
What Is a Subdomain?
Types of Subdomains
Dealing with Complexity
Summary
Chapter 4. Strategic Design with Context Mapping
Kinds of Mappings
Partnership
Shared Kernel
Customer-Supplier
Conformist
Anticorruption Layer
Open Host Service
Published Language
Separate Ways
Big Ball of Mud
Making Good Use of Context Mapping
RPC with SOAP
RESTful HTTP
Messaging
An Example in Context Mapping
Summary
Chapter 5. Tactical Design with Aggregates
Why Used
Aggregate Rules of Thumb
Rule 1: Protect Business Invariants inside Aggregate Boundaries
Rule 2: Design Small Aggregates
Rule 3: Reference Other Aggregates by Identity Only
Rule 4: Update Other Aggregates Using Eventual Consistency
Modeling Aggregates
Choose Your Abstractions Carefully
Right-Sizing Aggregates
Testable Units
Summary
Chapter 6. Tactical Design with Domain Events
Designing, Implementing, and Using Domain Events
Event Sourcing
Summary
Chapter 7. Acceleration and Management Tools
Event Storming
Other Tools
Managing DDD on an Agile Project
First Things First
Use SWOT Analysis
Modeling Spikes and Modeling Debt
Identifying Tasks and Estimating Effort
Timeboxed Modeling
How to Implement
Interacting with Domain Experts
Summary