نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیویی برای نمایش وجود ندارد.
توضیحات دوره:
این دوره اصول طراحی دامنه محور (DDD) را از طریق نمایش تعاملات با مشتری و یک برنامه آزمایشی پیچیده، همراه با مشاوره از کارشناسان مشهور DDD به شما می آموزد. در این دوره، اصول طراحی دامنه محور، شما این مفاهیم و ابزارهای کلیدی برای پیاده سازی DDD. ابتدا نحوه مدل سازی یک مشکل نرم افزاری را بررسی خواهید کرد. در مرحله بعد، عناصر DDD را کشف خواهید کرد. در نهایت، یاد خواهید گرفت که چگونه از DDD در یک نرم افزار نمونه نرم افزاری استفاده کنید. پس از اتمام این دوره، مهارت ها و دانش طراحی Domain-Driven مورد نیاز برای کشف پیچیدگی دامنه خود، ساخت نرم افزار هوشمندتر و به دست آوردن درک عمیق تر از DDD را خواهید داشت.
سرفصل ها و درس ها
بررسی اجمالی دوره
Course Overview
-
مرور دوره
Course Overview
معرفی طراحی دامنه
Introducing Domain-Driven Design
-
مقدمه و مرور
Introduction and Overview
-
از این دوره و این ماژول چه انتظاری باید داشت
What to Expect from This Course and This Module
-
درک ارزش طراحی دامنه محور
Understanding the Value of Domain-Driven Design
-
به دست آوردن درک سطح بالا از DDD
Gaining a High-Level Understanding of DDD
-
بررسی مزایا و معایب بالقوه DDD
Exploring the Benefits and Potential Drawbacks of DDD
-
بررسی نقشه ذهنی طراحی دامنه محور
Inspecting a Mind Map of Domain-Driven Design
-
معرفی برنامه نمونه ما
Introducing Our Sample Application
-
کاوش در ساختار سطح بالای برنامه نمونه
Exploring the Sample App's High-level Structure
-
بررسی و منابع
Review and Resources
مسائل مدلسازی در نرم افزار
Modeling Problems in Software
-
مقدمه و بررسی اجمالی
Introduction and Overview
-
معرفی دامنه ما
Introducing Our Domain
-
برنامه ریزی از قبل برای یادگیری در مورد دامنه
Planning Ahead to Learn About the Domain
-
مکالمه با یک متخصص دامنه: بررسی دامنه و زیر دامنه های آن
Conversation with a Domain Expert: Exploring the Domain and Its Subdomains
-
گفتگو با یک متخصص دامنه: بررسی زیر دامنه برنامه ریزی
Conversation with a Domain Expert: Exploring the Scheduling Subdomain
-
بررسی نکات کلیدی از جلسه با متخصص(های) دامنه
Reviewing Key Takeaways from Meeting with Domain Expert(s)
-
گرفتن اولین پاس در مدل سازی زیر دامنه ما
Taking a First Pass at Modeling our Subdomain
-
استفاده از زمینه های محدود برای باز کردن مفاهیمی که به نظر می رسد به اشتراک گذاشته شده اند
Using Bounded Contexts to Untangle Concepts that Appear to Be Shared
-
مکالمه با اریک ایوانز در مورد زیر دامنه ها و زمینه های محدود
Conversation with Eric Evans on Subdomains and Bounded Contexts
-
معرفی نقشه های زمینه
Introducing Context Maps
-
پرداختن به پرسش پایگاه های داده جداگانه در هر زمینه محدود
Addressing the Question of Separate Databases per Bounded Context
-
مشخص کردن زمینه های محدود در برنامه ما
Specifying Bounded Contexts in our Application
-
درک زبان فراگیر یک زمینه محدود
Understanding the Ubiquitous Language of a Bounded Context
-
مکالمه با یک متخصص دامنه: کار بر روی زبان همه جا حاضر ما
Conversation with a Domain Expert: Working on our Ubiquitous Language
-
بررسی مفاهیم مهم این ماژول
Reviewing Important Concepts from This Module
-
بررسی و منابع
Review and Resources
عناصر یک مدل دامنه
Elements of a Domain Model
-
مقدمه و بررسی اجمالی
Introduction and Overview
-
اهمیت درک شرایط DDD
The Importance of Understanding DDD Terms
-
تمرکز روی دامنه
Focusing on the Domain
-
شناسایی رویدادها منجر به درک رفتارها می شود
Identifying Events Leads to Understanding Behaviors
-
مقایسه مدل های کم خونی و دامنه غنی
Comparing Anemic and Rich Domain Models
-
درک موجودیت ها
Understanding Entities
-
تمایز CRUD از مشکلات پیچیده ای که از DDD سود می برند
Differentiating CRUD from Complex Problems that Benefit from DDD
-
جابجایی بین زمینه ها در یک رابط کاربری
Switching Between Contexts in a UI
-
استفاده از GUID یا Ints برای مقادیر هویت
Using GUIDs or Ints for Identity Values
-
گفتگو با اریک ایوانز درباره مسئولیت نهادها
Talking with Eric Evans About the Responsibility of Entities
-
موجودیت های پیاده سازی در کد
Implementing Entities in Code
-
همگام سازی داده ها در زمینه های محدود
Synchronizing Data Across Bounded Contexts
-
بررسی و منابع
Review and Resources
درک اشیاء و خدمات ارزش در مدل
Understanding Value Objects & Services in the Model
-
مقدمه و بررسی اجمالی
Introduction and Overview
-
آشنایی با اشیاء ارزشی
Getting Acquainted with Value Objects
-
شناخت اشیاء ارزشی که معمولاً مورد استفاده قرار می گیرند
Recognizing Commonly Used Value Objects
-
دریافت بینش بیشتر از اریک ایوانز و وان ورنون
Getting More Insight from Eric Evans and Vaughn Vernon
-
پیاده سازی اشیاء ارزش در کد
Implementing Value Objects in Code
-
آشنایی با خدمات دامنه
Understanding Domain Services
-
بررسی و منابع
Review and Resources
مقابله با پیچیدگی با مصالح
Tackling Complexity with Aggregates
-
مقدمه و بررسی اجمالی
Introduction and Overview
-
مقابله با پیچیدگی داده ها
Tackling Data Complexity
-
معرفی Aggregates و Aggregate Roots
Introducing Aggregates and Aggregate Roots
-
در نظر گرفتن انجمن ها در مصالح
Considering Associations in Aggregates
-
دستکاری روابط که جمع آوری می شود
Handling Relationships that Span Aggregates
-
تکامل مجموع انتصابات
Evolving the Appointments Aggregate
-
استفاده از متغیرها برای درک بهتر جمع ما
Using Invariants to Better Understand Our Aggregate
-
مدل سازی پیشرفت ها و بازسازی
Modeling Breakthroughs and Refactoring
-
تشخیص علائم تجمع نادرست
Recognizing Signs of a Misidentified Aggregate
-
در نظر گرفتن زمانبندی به عنوان مجموعه جدید ما
Considering Schedule as Our New Aggregate
-
بررسی جدول زمانبندی در برنامه ما
Exploring the Schedule Aggregate in Our Application
-
به اشتراک گذاشتن نکات ما برای طراحی انبوه
Sharing Our Tips for Aggregate Design
-
بررسی و منابع
Review and Resources
کار با مخازن
Working with Repositories
-
مقدمه و بررسی اجمالی
Introduction and Overview
-
معرفی مخازن
Introducing Repositories
-
مزایای مخزن
Repository Benefits
-
نکات مخزن
Repository Tips
-
اجتناب از اشتباهات مخزن
Avoiding Repository Blunders
-
پرداختن به بحث های پیرامون با استفاده از مخازن
Addressing the Debates Around Using Repositories
-
بازگشت IQueryable: مزایا و معایب
Returning IQueryables: Pros and Cons
-
در نظر گرفتن مخازن و رابط های عمومی
Considering Generic Repositories and Interfaces
-
کاوش مخازن در برنامه ما
Exploring Repositories in our Application
-
معرفی الگوی مشخصات
Introducing the Specification Pattern
-
استفاده از مشخصات با مخازن در برنامه ما
Using Specifications with Repositories in Our App
-
بررسی و منابع
Review and Resources
افزودن رویدادهای دامنه و لایه های ضد فساد
Adding in Domain Events and Anti-corruption Layers
-
مقدمه و بررسی اجمالی
Introduction and Overview
-
معرفی رویدادهای دامنه
Introducing Domain Events
-
شناسایی رویدادهای دامنه در سیستم ما
Identifying Domain Events in Our System
-
طراحی رویدادهای دامنه
Designing Domain Events
-
اعمال رویدادهای دامنه در یک برنامه ساده
Applying Domain Events to a Simple App
-
کاوش رویدادهای دامنه در برنامه ما
Exploring Domain Events in Our Application
-
معرفی لایه های ضد فساد
Introducing Anti-Corruption Layers
-
بررسی و منابع
Review and Resources
به لطف DDD، برنامه را به راحتی توسعه دهید
Evolving the Application Easily Thanks to DDD
-
مقدمه و بررسی اجمالی
Introduction and Overview
-
بررسی طراحی سیستم فعلی ما
Reviewing Our Current System Design
-
پرداختن به یک ویژگی جدید با متخصص دامنه
Addressing a New Feature with the Domain Expert
-
برنامه ریزی مراحل اجرایی ما
Planning Our Implementation Steps
-
معرفی صف های پیام
Introducing Message Queues
-
ارسال پیام به صف
Sending a Message to the Queue
-
خواندن از صف پیام و عمل بر روی پیام
Reading From the Message Queue and Acting on the Message
-
استفاده از صف های متعدد برای مدیریت ارتباطات مختلف
Using Multiple Queues to Handle Various Communications
-
اشکال زدایی برای مشاهده جزئیات پیاده سازی در کد
Debugging to See the Detailed Implementation in Code
-
با در نظر گرفتن میکروسرویس ها
Considering Microservices
-
به اشتراک گذاشتن چند نکته برای گسترش و اجرای نمونه برنامه
Sharing Some Tips for Extending and Running the Sample Application
-
در نظر گرفتن UI در طراحی دامنه
Considering the UI in the Domain Design
-
مدل سازی با رویداد طوفان و تکنیک های دیگر
Modeling with Event Storming and Other Techniques
-
اریک ایوانز در مورد مغالطه کمال گرایی
Eric Evans on the Fallacy of Perfectionism
-
درس های آموخته شده از دوره ما در سال 2014
Lessons Learned Since Our 2014 Course
-
بررسی و منابع
Review and Resources
Pluralsight (پلورال سایت)
Pluralsight یکی از پرطرفدارترین پلتفرمهای آموزش آنلاین است که به میلیونها کاربر در سراسر جهان کمک میکند تا مهارتهای خود را توسعه دهند و به روز رسانی کنند. این پلتفرم دورههای آموزشی در زمینههای فناوری اطلاعات، توسعه نرمافزار، طراحی وب، مدیریت پروژه، و موضوعات مختلف دیگر را ارائه میدهد.
یکی از ویژگیهای برجسته Pluralsight، محتوای بروز و با کیفیت آموزشی آن است. این پلتفرم با همکاری با توسعهدهندگان و کارشناسان معتبر، دورههایی را ارائه میدهد که با توجه به تغییرات روزافزون در صنعت فناوری، کاربران را در جریان آخرین مفاهیم و تکنولوژیها نگه میدارد. این امر به کاربران این اطمینان را میدهد که دورههایی که در Pluralsight میپذیرند، با جدیدترین دانشها و تجارب به روز شدهاند.
نمایش نظرات