کدنامهمرجع‌های مهندسی نرم‌افزار، به فارسی

طراحی دامنه‌محور

Domain-Driven Design

‏DDD یک چارچوب یا کتابخانه نیست؛ روشی است برای اینکه کد، همان چیزی را بگوید که کارشناس کسب‌وکار می‌گوید. بیشتر پروژه‌هایی که «‎DDD‎ کار می‌کنند» فقط پوشه‌هایی به نام Domain ساخته‌اند و مدلشان همچنان کم‌خون است. این مسیر از زبان شروع می‌کند، نه از ساختار پوشه — و صادقانه می‌گوید کجا اصلاً به ‎DDD‎ نیاز نداری.

۲۴فصل
۳۹۹تمرین با پاسخ
≈ ۳۹ ساعتزمان تخمینی
۳پروژهٔ نهایی

پیشرفت تو

۰٪

درصد هر فصل از دو چیز می‌آید: چقدر از بخش‌هایش را خوانده‌ای (۵۵٪) و چند تمرینش را تیک زده‌ای (۴۵٪). همه‌چیز داخل مرورگر خودت می‌ماند.

فصل

فصل‌ها به هم وابسته‌اند و ترتیبشان معنا دارد. هر مسیر با پروژه‌های نهایی تمام می‌شود: ساده، متوسط، پیچیده.

۱

‏DDD چه مسئله‌ای را حل می‌کند

وقتی پیچیدگی دامنه است، نه فناوری.

در نوبت نوشتن
۲

زبان فراگیر

یک واژه، یک معنا — بین برنامه‌نویس و کارشناس کسب‌وکار.

در نوبت نوشتن
۳

طراحی راهبردی

نقشهٔ کل دامنه: هسته، پشتیبان، عمومی.

در نوبت نوشتن
۴

‏bounded context

مهم‌ترین مفهوم DDD — مرزی که معنا در آن ثابت است.

در نوبت نوشتن
۵

نقشهٔ زمینه‌ها

رابطهٔ بین context‌ها: ‎shared kernel‎، ‎ACL‎، ‎conformist‎.

در نوبت نوشتن
۶

‏entity

هویت در برابر مقدار، و چرا شناسه مهم است.

در نوبت نوشتن
۷

‏value object

بدون هویت، تغییرناپذیر — و اینکه چرا اینقدر مفید است.

در نوبت نوشتن
۸

‏aggregate

سخت‌ترین بخش ‎DDD‎: مرز ثبات و قاعدهٔ تراکنش.

در نوبت نوشتن
۹

طراحی ‎aggregate‎

قاعده‌های عملی: کوچک نگه دار، با شناسه ارجاع بده.

در نوبت نوشتن
۱۰

رویداد دامنه

چیزی که در دامنه اتفاق افتاد، و بقیه باید بدانند.

در نوبت نوشتن
۱۱

‏domain service و application service

منطقی که به هیچ ‎entity‎ تعلق ندارد.

در نوبت نوشتن
۱۲

‏repository در ‎DDD‎

مجموعه‌ای از ‎aggregate‎، نه یک لایهٔ پایگاه‌داده.

در نوبت نوشتن
۱۳

‏factory

ساختن ‎aggregate‎ معتبر، از همان لحظهٔ اول.

در نوبت نوشتن
۱۴

الگوی ‎specification‎

قاعدهٔ کسب‌وکار به‌عنوان یک شیء قابل ترکیب.

در نوبت نوشتن
۱۵

لایهٔ ضدفساد

محافظت از مدل خودت در برابر مدل سیستم بیرونی.

در نوبت نوشتن
۱۶

‏event sourcing

ذخیرهٔ رویدادها به‌جای وضعیت — و هزینهٔ واقعی‌اش.

در نوبت نوشتن
۱۷

‏CQRS در کنار ‎DDD‎

مدل نوشتن غنی، مدل خواندن ساده.

در نوبت نوشتن
۱۸

‏DDD و ‎ORM‎

نگاشت ‎aggregate‎ به جدول بدون آلوده کردن دامنه.

در نوبت نوشتن
۱۹

تست دامنه

تست قاعده‌های کسب‌وکار، بدون پایگاه‌داده و بدون ‎mock‎.

در نوبت نوشتن
۲۰

ضدالگوها

مدل کم‌خون، ‎aggregate‎ غول‌آسا، و ‎DDD‎ کاغذی.

در نوبت نوشتن
۲۱

کِی ‎DDD‎ نزن

‏CRUD ساده به ‎DDD‎ نیاز ندارد — و این را باید بپذیری.

در نوبت نوشتن
۲۲

پروژهٔ ۱ — مدل‌سازی یک دامنه

از گفت‌وگو با کارشناس تا ‎entity‎ و ‎value object‎.

در نوبت نوشتنپروژهٔ ساده
۲۳

پروژهٔ ۲ — ‎aggregate‎ و رویداد

مرز ثبات، ‎invariant‎ و رویداد دامنه، با تست کامل.

در نوبت نوشتنپروژهٔ متوسط
۲۴

پروژهٔ ۳ — دو ‎bounded context‎

دو زمینه، نقشهٔ رابطه، ‎ACL‎ و سازگاری نهایی.

در نوبت نوشتنپروژهٔ پیچیده