دوره آموزشی عملی 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 شرکت کنید.
Reviews
There are no reviews yet.