آموزش کاربردی طراحی دامنه محور Domain Driven Design

تعداد ویدئو 100
زمان دوره 04:16:54
مترجم مرتضی گیتی
دوبلر مرتضی گیتی
سایت منتشر کننده پلورال سایت

آموزش کاربردی طراحی دامنه محور Domain Driven Design یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی آموزش کاربردی Domain Driven Design است که با نام اصلی Domain Driven Design in Practice از شرکت Pluralsight منتشر شده است.

Domain Driven Design چیست؟

طراحی دامنه محور یا همان Domain Driven Design در واقع درک نیازهای واقعی کسب و کار مشتری است. ما باید درباره دامنه های مختلف مانند بانکداری، مخابرات، زنجیره تامین، مراقبت های بهداشتی و… دانش داشته باشیم. بنابراین در اینجا دامنه به معنی دانش کسب و کار درباره صنعت خاص است. به طور مشابه طراحی دامنه محور تمرکز بیشتری نسبت به نیازهای کسب و کار دارد نه به تکنولوژی. برای شروع نوشتن یک سیستم، باید بدانیم که مشتری چه چیزی را مد نظر دارد، در حین فاز اولیه هیچگاه درباره برنامه نویسی و معماری آن فکر نمیکنید. هدف اصلی شما درک تمام شرایط کسب و کار مشتری و چگونگی مدل دامنه مورد نیاز او است.

Domain-Driven-Design-in-Practice-snapshot

بنابراین چیزی که ما به دنبال آن هستیم بحث با مشتری درباره نیازهای کسب و کار او است. Domain Driven Design صرفا بر اساس این فرضیات برای ترسیم کردن نیازهای کسب و کار در مدل دامنه است. طراحی دامنه محور همه چیز درباره چگونگی طراحی مدل دامنه شماست. به این معنا که هر کلاس دامنه باید یک رابطه مستقیم با  آنچه که در دامنه کسب و کار است داشته باشد.

سرفصل مطالب آموزش کاربردی طراحی نرم افزار Domain Driven Design

فصل اول: مقدمه

  • شروع به کار
  • سرفصل این دوره ی آموزشی و پیش نیازها
  • حوزه های کاربر Domain Driven Design
  • چرا باید از Domain Driven Design استفاده کنیم؟
  • مفاهیم اساسی در Domain Driven Design
  • Domain Driven Design لزوماً مربوط به کد نویسی نیست
  • معماری پیازی و Domain Isolation
  • بهترین تکنیک های مدل سازی
  • ارتباط Domain Driven Design و Unit Testing
  • معرفی نرم افزار این بسته ی آموزشی یا همان دامین مسئله (Domain Problem)
  • جمع بندی

فصل دوم: شروع به کار با اولین Bounded Context

  • مقدمه
  • واژگان مورد استفاده
  • توصیف مسئله
  • شروع به کار با انتیتی Snack Machine
  • مرور شروع به کار با انتیتی Snack Machine
  • مقایسه ی Entity ها و Value Object ها
  • نحوه ی شناخت Value Object ها در Domain Model
  • معرفی کلاس پدر Entity ها
  • پیاده سازی عملی کلاس پدر Entity ها
  • مرور کلاس پدر Entity ها
  • معرفی کلاس پدر Value Object ها
  • مرور کلاس پدر Value Object ها
  • مقایسه ی Value Object ها و Value Type ها در دات نت
  • زمان مناسب نوشتن Unit Test
  • پیاده سازی کلاس Money
  • اتمام پیاده سازی کلاس Money
  • پیاده سازی کلاس Snack Machine
  • مرور پیاده سازی کلاس Money و کلاس Snack Machine
  • جمع بندی

فصل سوم: معرفی لایه های UI و Persistence

  • مقدمه
  • Application Service ها و UI در معماری پیازی
  • افزودن UI برای Snack Machine
  • مرور افزودن UI برای Snack Machine
  • طراحی بانک اطلاعاتی برای Snack Machine
  • معرفی NHibernate به عنوان یک ORM
  • استراتژی های ID Generation
  • استراتژی های Mapping
  • تنظیم Domain Layer برای استفاده شدن در ORM
  • تنظیم موارد دیگر
  • جمع بندی

فصل چهارم: گسترش دادن Bounded Context با استفاده از Aggregate ها

  • مقدمه
  • توصیف مسئله
  • شروع به کار با پیاده سازی
  • معرفی Aggregate ها
  • نحوه ی پیدا کردن مرزهای Aggregate  ها
  • معرفی کلاس پدر Aggregate Root
  • ریفکتور کردن Snack Machine به عنوان یک Aggregate
  • مرور ریفکتور کردن Snack Machine به عنوان یک Aggregate
  • پیاده سازی نیازمندی های دیگر
  • پدیدار شدن نیازمندهای مخفی
  • مرور پدیدار شدن نیازمندهای مخفی
  • جمع بندی

فصل پنجم: معرفی Repository ها

  • مقدمه
  • تنظیم کردن بانک اطلاعاتی برای Entity های جدید
  • معرفی Repository ها
  • معرفی کلاس پدر Repository ها
  • پیاده سازی Mapping ها برای Aggregate ها
  • ریفکتور کردن انتیتی Snack
  • تنظیم UI برنامه
  • جمع بندی

فصل ششم: معرفی Bounded Context دوم

  • مقدمه
  • پیاده سازی یک مدل جدید برای یک ATM
  • Bounded Context های موجود
  • مقایسه ی مفهوم Bounded Context و Sub Domain
  • انتخاب کردن مرزهای Bounded Context ها
  • تشکیل دادن یک Context Map
  • انواع Physical Isolation ها
  • ارتباطات بین Bounded Context ها
  • Code Reuse (استفاده ی مجدد از کد) بین Bounded Context ها
  • پیاده سازی Domain Logic مربوط به انتیتی ATM
  • تنظیم کردن بانک اطلاعاتی
  • افزودن UI
  • جمع بندی

فصل هفتم: کار با Domain Event ها

  • مقدمه
  • نیازمندی های جدید
  • معرفی یک Bounded Context جدید
  • اولین تلاش در پیاده سازی
  • معرفی Domain Event ها
  • مبحث Physical Delivery
  • ساخت Management به عنوان یک Bounded Context
  • هندل کردن Domain Event ها با روش سنتی
  • مرور روش سنتی
  • یک روش بهتر برای هندل کردن Domain Event ها
  • مرور روش بهتر
  • استفاده از Domain Event ها برای ارتباط بین Microservice ها
  • اضافه کردن UI برای Management به عنوان یک Bounded Context
  • جمع بندی

فصل هشتم: بهبود بیشتر نرم افزار و Domain Model

  • مقدمه
  • مقایسه ی روش Always Valid و Not Always Valid
  • معرفی Factory ها
  • مقایسه ی Domain Service ها و Application Service ها
  • ضدالگوی Anemic Domain Model
  • ضدالگوی Fat Entity
  • ضدالگوهای Repository ها
  • روش برخورد Mechanical با Domain Driven Design
  • بهبودهای دیگر
  • جمع بندی
  • لیست منابع
  • خلاصه ی بسته ی آموزشی

1 دیدگاه برای آموزش کاربردی طراحی دامنه محور Domain Driven Design

  1. Shayan

    این آموزش برای دات نت هست یا میتوان برای Php هم استفاده کرد

    • پرووید

      سلام وقت بخیر. مفاهیم DDD رو میتوانید توی PHP هم پیاده سازی کنید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته های محصولات

افزودن به سبد خرید