دوره آموزشی  عملی Applying Domain-Driven Design

Applying Domain-Driven Design
تصویر شاخص

دوره آموزشی  عملی Applying Domain-Driven Design

محل برگزاری مدرس تاریخ شروع اولین جلسه روز و ساعت مدت زمان کل دوره تعداد جلسات هزینه ثبت‌نام زود هنگام هزینه ثبت‌نام عادی لینک ثبت نام
آنلاین مسعود بهرامی ۱۶ بهمن ۱۳۹۹ ۵شنبه ‌ها ساعت ۱۳:۰۰ تا ۱۷:۰۰ ۲۴ ساعت ۶ جلسه ۴ ساعته ۹۰۰۰۰۰ هزار تومان ۱۲۰۰۰۰۰ هزار تومان  ثبت ‌نام

 

 مزایای شرکت در دوره


این دوره بصورت آنلاین برگزار می‌شود. و ویدئوها و فایل‌های تمامی جلسات در اختیار شرکت‌کنندگان قرار می‌گیرد. در نتیجه در صورتی که نتوانید در یک جلسه شرکت کنید قادر خواهید بود ویدئوی آن جلسه را پس از پایان جلسه در اختیار داشته باشید.

همچنین گروه پشتیبانی جهت پاسخ به سوالات و راهنمایی دانشجویان، در طول دوره برای تمامی شرکت کنندگان وجود دارد.

 

 پیش‌نیازهای دوره


برای شرکت در این دوره نیاز می‌باشد که تجربه برنامه نویسی داشته باشید و با مفاهیم برنامه نویسی شی‌گرا و همچنین Clean Code آشنا باشید.

در صورتی که با برنامه شی‌گرا و مفاهیم Clean Code آشنا نیستید و تجربه کافی ندارید، پیشنهاد می‌کنیم در دوره‌ی الگوها، اصول و تکنیک‌های Clean Code مکتب‌خانه DDD شرکت کنید.

 

 ابزارها، تکنولوژی‌های و زبان برنامه‌نویسی مورد استفاده در دوره


این دوره آموزشی به زبان برنامه‌نویسی و یا تکنولوژی خاصی وابسته نیست و محتوای آن قابل پیاده‌سازی در تمامی زبان‌های برنامه‌نویسی شی‌گرا می‌باشد.

در این دوره برای پیاده‌سازی پروژه‌ها و کد‌ها از زبان برنامه‌نویسی #C و پلت فرم dot net core استفاده می‌کنیم.

برخی از لایبرری‌های مورد استفاده در طول دوره:

  • NSubstitute
  • Ncrunch
  • RabbitMQ
  • XUnit.Net

 

سرفصل‌های دوره


 

  • بررسی آناتومی Domain-Driven Design (DDD)
  • چرا DDD مهم می باشد؟
  • استراتژی‌های DDD جهت مقابله و غلبه بر پیچیدگی موجود در دامین
  • چگونه می‌توان با شکستن دامنه مسئله با بخش‌های کوچکتر بر پیچیدگی موجود در دامنه مسئله غلبه کرد؟
  • چگونه می‌توان طراحی را بر اساس دامنه پیش برد، و چرا این موضوع برای موفقیت پروژه مهم می‌باشد؟
  • تعریف زبان مشترک و نحوه‌ی رسیدن به آن
  • الگوهای پیاده سازی دامین مدل
  • بررسی دقیقتر مفهوم Context
  • Bounding the Contexts
  • آشنایی با Test-Driven Development
    • TDD به عنوان یک فلسفه طراحی
    • TDD به عنوان ابزاری جهت رسیدن به Simple and Emergent Design
    • آشنایی با دو رویکرد مهم TDD
      • Classist TDD
      • Mockist TDD
  • آشنایی کامل با معماری Ports and Adapters
  • Strategic DDD
    • اشنایی با هیوریستیک‎‌های مختلف جهت شناسایی Bounded Contextها
    • اشنایی با هیوریستیک‎‌های مختلف جهت تقسیم Domain به Sub-Domainها
    • آشنایی با مهمترین مکانیزم‌های شناخت و استخراج دانش از دامین
    • آشنایی با تکنیک Event Storming به عنوان یک مکانیزم مهم طراحی
    • طراحی در سطح انتزاع به کمک Context Map
    • مکانیزم‌های یکپارچگی بین Bounded Contextها
      • Shared Kernel
      • Customer-Supplier
      • Conformist
      • Anticorruption layer
      • Separate Ways
      • Open-Host Service
      • Published Language
  • Tactical DDD
    • آشنایی با مفهوم Model-Driven Development
    • بلاک‎های تکنیکال سازنده DDD
    • Aggregate
    • Aggregate به عنوان یک ماشین حالت(State Machine)
    • آشنایی با مفهوم Aggregate Root و وظیفه آن
    • مدیریت بازه زمانی حیات آبجکت‌ها به کمک Entityها
    • همه چیز در مورد Value Objectها
    • آشنایی با تکنیک‌های شناخت و تمایز قایل شدن بین Value Objectها و Entityها
    • مکانیزم‌های مختلف ذخیره سازی Aggregateها
      • در دیتابیس‌های ربطه‌ای
      • در دیتابیس‌های غیر رابطه‌ای
    • ارتباط و چتینگ بین Aggregateهای داخل یک Bounded Context
    • Domain Eventها و تفاوت آن با سایر انواع Eventها
      • Integration and External Event
      • Event در Event Sourcing
    • Domain Service
    • آشنایی با الگوهای Creational مختلف مورد استفاده در لایه Domain
      • Factory Method
      • Factory Class
      • Builder
      • Fluent Builder
    • Specification
    • آشنایی با تکنیک‎‌های شناخت و طراحی Aggregateها
  • پیاده سازی لایه API و Application به روش TDD
  • اشنایی با سطوح مختلف REST
  • آشنایی با رویکردهای مختلف مواجه با Versioning در REST Api
  • پیاده سازی مکانیزمها مختلف ارتباط با Application در معماری Ports and Adapters
  • پیاده سازی الگوی Façade جهت ارتباط لایه‌های بیرونی با Application به روش TDD
  • پیاده سازی الگوی Command Dispatcher به روش TDD
  • پیاده سازی لایه Application service به روش TDD
  • پیاده سازی لایه Domain به روش TDD
    • آشنایی به انواع روش‌های پیاده سازی Entityها و Aggregateها
    • آشنایی با استراتژیهای مختلف تولید Id برای Entityها
    • آشنایی به انواع روش‌های پیاده سازی Value Object
    • پیاده سازی استراتژیهای مختلف مقایسه برابری Value Objectها
    • پیاده سازی Domain Serviceها به کمک TDD
  • ذخیره سازی
    • پیاده سازی الگوهای Repository و Unit Of Work
    • پیاده سازی مکانیزم Unit Of Work و مدیریت تراکنش‌های در لایه Application Service
    • پیاده سازی الگوی Memento
  • یکپارچه سازی میان Bounded Contextها
    • رویکردهای مختلف برقراری یکپارچگی بین Bounded Contextها
    • پیاده سازی رویکرد مبتنی بر Push
    • پیاده سازی رویکرد مبتنی بر Pull
    • پیاده سازی رویکرد مبتنی بر Messaging
    • پیاده سازی رویکرد مبتنی بر Rest API

 

مفید برای:


 

  • توسعه‌دهندگان
  • طراحان و معماران نرم‌افزار
  • CTOها و Team Leader

هایی که دغدغه توسعه یک نرم‌افزار با کیفیت بالا و تست‌پذیر که در مقابل تغییرات در نیازمندیها منعطف می‌باشد را دارند.

پیش نیاز :

برای شرکت در این دوره نیاز می‌باشد که:

  • تجربه برنامه نویسی داشته باشید
  • با مفاهیم برنامه نویسی شی‌گرا و همچنین Clean Code آشنا باشید

در صورتی که با برنامه شی‌گرا و مفاهیم Clean Code آشنا نیستید و تجربه کافی ندارید، پیشنهاد می‌کنیم در دوره‌ی الگوها، اصول و تکنیک‌های Clean Code  مکتب‌خانه DDD شرکت کنید.

 

 

این محصول هیچ محتوایی جهت دریافت ندارد

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

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

اولین کسی باشید که دیدگاهی می نویسد “دوره آموزشی  عملی Applying Domain-Driven Design”

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

قیمت :

1,200,000 تومان

امتیازی ثبت نشده است
سطح آموزش پیشرفته
تعداد دانشجو : 20
مدت دوره: 24:00ساعتتاریخ انتشار: 4 بهمن 1399آخرین بروزرسانی: 16 بهمن 1399تعداد بازدید: 920
قوانین و مزایای استفاده

  • دسترسی به فایل محصول به صورت مادام‌العمر
  • تضمین کیفیت آموزش ها
  • فعال‌سازی آنی لینک دانلود، پس از ثبت سفارش
  • فروش فقط از طریق دیجی آکادمی
  • به صورت رایگان یک یا چند آموزش را دریافت می کنید.
مدرس

مسعود بهرامی

مسعود بهرامی هستم. توسعه دهنده و معمار نرم‌افزار. بیش از 8 سال سابقه توسعه نرم‌افزار در زمینه‌ها و مقیاس های مختلف را دارم. به عنوان مشاور با تیم‌ها و سازمان‌های مختلفی کار کرده‌ام.
علاقمند و فعال در حوزه ی سیستم‌های توزیع شده و معماری مایکروسرویس ها هستم.
ابزارهای من در طراحی و پیاده سازی نرم افزار، اینها هستند
DDD, EventStorming, BDD, TDD, CQRS, Event Sourcing.
قیمت :

1,200,000 تومان