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

تعداد ویدئو 58
زمان دوره 03:51:09
مترجم مرتضی گیتی
دوبلر مرتضی گیتی
سایت منتشر کننده پلورال سایت

آموزش طراحی دامنه محور Domain Driven Design و کار با کد های موروثی Legacy یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی آموزش Domain Driven Design و کار با Legacy Project ها است که با نام اصلی Domain Driven Design: Working with Legacy Projects از شرکت Pluralsight منتشر شده است.

Domain Driven Design چیست؟

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

Domain-Driven-Design-Working-with-Legacy-Projects-snapshot

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

Legacy Project چیست؟

Legacy Project (پروژه ی موروثی) و یا Legacy Code (کد موروثی) به سورس کد نرم افزاری گفته می‌شود که دیگر پشتیبانی نمی شود. به عبارت دیگر می‌ توان Legacy Project را سیستم عامل، سخت افزار یا هر سیستم نرم افزاری که دیگر پشتیبانی نمی شود تعریف کرد. اشتباه معمولی که اغلب توسعه دهندگان به آن دچار می‌ شوند این است که Legacy Code را کد می‌ دانند که قدیمی است. گرچه بعضی از توسعه دهندگان نرم افزار به کد موروثی به عنوان کدی که به صورت ضعیف نوشته شده است نگاه می کنند، اما حقیقت این است که کد موروثی کدی است که اصول مهندسی در آن جایی ندارد و دیگر پشتیبانی نمی‌ شود و مرتباً Patch (وصله) می شد. نکته ی دیگر این است که در طی زمان ممکن است تعداد نامحدودی از تغییرات بر روی یک Code Base قرار بگیرد و این تغییرات ذره‌ ذره یک Code Base خوب را تبدیل به Legacy Code کنند که ایجاد تغییر در آن بسیار دشوار است و به هیچ وجه اصول مهندسی در آن لحاظ نشده است. در کد های موروثی تغییر ایجاد کردن توسط توسعه دهنده نرم افزار به سختی انجام پذیر است و ایجاد هرگونه تغییر برای اضافه کردن قابلیت های جدید باعث شکسته شدن قسمت دیگری از نرم افزار می شود.

سرفصل مطالب آموزش ویدئویی Domain Driven Design و کار با Legacy Project ها

فصل اول: مقدمه ی بسته ی آموزشی

  • مقدمه ی بسته ی آموزشی

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

  • شروع به کار
  • Legacy Project چیست؟
  • بررسی Legacy Project ها و کد بد
  • بررسی دوباره نویسی پروژه
  • چه زمانی دوباره نویسی قابل قبول است؟
  • جمع بندی

فصل سوم: معرفی کردن Legacy Project مورد استفاده در این آموزش

  • مفدمه
  • معرفی کردن Legacy Project مربوطه
  • معرفی دیتابیس
  • مرور مطالب
  • معرفی Application Code
  • جمع بندی

فصل چهارم: ساختن یک Bubble Context با Domain Model جدید

  • مقدمه
  • نیازمندی جدید
  • نکات مربوط به ریفکتورینگ
  • معرفی Anti-corruption Layer
  • معرفی کردن Domain Model جدید
  • ساختن Bubble Context
  • معرفی Translation Map
  • معرفی کردن Entry Point
  • فکر کردن دوباره در مورد Domain Model
  • مرور مطالب
  • جمع بندی

فصل پنجم: ساختن یک Anti-corruption Layer

  • مقدمه
  • ساختن یک Anti-corruption Layer
  • قوی کردن Domain Model با انجام Encapsulation مناسب
  • مرور مطالب
  • پیاده سازی نیازمندی جدید
  • مقایسه ی Validation Error ها و Precondition ها
  • مرور مطالب
  • جمع بندی

فصل ششم: مستقل کردن Bubble با معرفی یک Data Storage مجزا

  • مقدمه
  • نیازمندی جدید
  • Synchronize کردن Anti-corruption Layer
  • ساختن یک دیتابیس جدید
  • تنظیم کردن Domain Model و Persistence Logic
  • مرور مطالب
  • معرفی یک Entry Point جدید برای Bubble
  • پیاده سازی واسط کاربری جدید
  • ذخیره کردن Delivery در دیتابیس
  • مرور مطالب
  • جمع بندی

فصل هفتم: ارتقای Anti-corruption Layer به Synchronizing Anti-corruption Layer

  • مقدمه
  • ارتقا دادن Anti-corruption Layer
  • تصمیم گیری در مورد Data Ownership
  • استراتژی های Synchronization
  • آماده سازی دیتابیس
  • ساختن Orchestration
  • Synchronize کردن Bubble با Legacy
  • مرور مطالب
  • جمع بندی

فصل هشتم: بررسی روش های دیگر هندل کردن Legacy Project ها

  • مقدمه
  • زمانی که یک Anti-corruption Layer کافی نیست
  • Expose کردن Legacy Asset ها به عنوان مایکروسرویس
  • ساختن یک Domain Event Channel
  • لیست منابع
  • جمع بندی دوره ی آموزشی

نقد و بررسی‌ها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین کسی باشید که دیدگاهی می نویسد “آموزش طراحی دامنه محور Domain Driven Design و کار با کد های موروثی Legacy”

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

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

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