کتاب معماری نرمافزار: Domain Driven Design Distilled با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
دوره جامع معماری نرمافزار: Domain Driven Design Distilled دوره جامع معماری نرمافزار: Domain Driven Design Distilled معرفی دوره: از کدنویسی آشفته تا معماریهای پایدار و مقیاسپذیر آیا تا به حال در پر...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره معماری نرمافزار: Domain Driven Design Distilled
موضوع کلی: برنامه نویسی
موضوع میانی: معماری نرمافزار
📋 سرفصلهای دوره
- 1. مقدمهای بر معماری نرمافزار
- 2. چرا معماری خوب اهمیت دارد؟
- 3. نقش معمار نرمافزار
- 4. پیچیدگی سیستمهای نرمافزاری و چالشهای آن
- 5. مفهوم "دامنه" در مهندسی نرمافزار
- 6. مسئله "عدم تطابق امپدانس"
- 7. معرفی برنامهنویسی شیءگرا (OOP) و اصول SOLID
- 8. تاریخچه مختصر الگوهای معماری (مونولیت، SOA، میکروسرویس)
- 9. معرفی Domain Driven Design (DDD)
- 10. DDD: رویکردی برای مقابله با پیچیدگی کسبوکار
- 11. اصول اساسی DDD
- 12. مزایای پیادهسازی DDD
- 13. چه زمانی باید از DDD استفاده کرد؟
- 14. سوءتفاهمهای رایج درباره DDD
- 15. چگونگی شروع با DDD در پروژهها
- 16. طراحی استراتژیک: نگاهی کلی
- 17. زبان فراگیر (Ubiquitous Language): مفهوم و اهمیت
- 18. ایجاد یک زبان فراگیر مشترک
- 19. نقش متخصصان دامنه (Domain Experts) در شکلگیری زبان
- 20. چالشهای زبان: ابهام، هممعنیها، چندمعنیها
- 21. مستندسازی و نگهداری زبان فراگیر
- 22. مفهوم "بافت محدود" (Bounded Context)
- 23. شناسایی بافتهای محدود
- 24. مرزهای بافت و اهمیت آنها
- 25. بافتهای محدود به عنوان یک واحد ماژولار
- 26. تکنیکهای کشف بافتهای محدود
- 27. رویداد طوفانی (Event Storming): مقدمهای جامع
- 28. کشف بافتهای محدود با Event Storming در عمل
- 29. نقش رویدادها در Event Storming
- 30. نقش دستورات در Event Storming
- 31. نقشه بافت (Context Map): چرا ضروری است؟
- 32. الگوهای رابطه در نقشه بافت: هسته مشترک (Shared Kernel)
- 33. الگوهای رابطه در نقشه بافت: مشتری-تامینکننده (Customer-Supplier)
- 34. الگوهای رابطه در نقشه بافت: پیرویکننده (Conformist)
- 35. الگوهای رابطه در نقشه بافت: لایه ضد فساد (Anti-Corruption Layer) - معرفی اولیه
- 36. الگوهای رابطه در نقشه بافت: مشارکت (Partnership)
- 37. الگوهای رابطه در نقشه بافت: سرویس میزبان باز (Open Host Service)
- 38. الگوهای رابطه در نقشه بافت: زبان منتشر شده (Published Language)
- 39. الگوهای رابطه در نقشه بافت: مسیرهای جداگانه (Separate Ways)
- 40. ترسیم و بصریسازی نقشه بافتها
- 41. طراحی تاکتیکی: نگاهی کلی
- 42. موجودیتها (Entities): هویت و چرخه حیات
- 43. اشیاء مقداری (Value Objects): تغییرناپذیری و خصوصیات
- 44. تمایز کلیدی: موجودیتها در مقابل اشیاء مقداری
- 45. طراحی اشیاء مقداری مؤثر و مفید
- 46. اجتماعها (Aggregates): محافظت از ناورداییها (Invariants)
- 47. ریشه اجتماع (Aggregate Root): نگهبان اجتماع
- 48. قوانین طراحی اجتماعها
- 49. مدیریت مرزهای اجتماع
- 50. سازگاری درون اجتماعها
- 51. ارجاعات بین اجتماعها: پرهیز از ارجاعات مستقیم
- 52. طراحی اجتماعهای مقاوم و با ثبات
- 53. سرویسهای دامنه (Domain Services): ارکستراسیون منطق دامنه
- 54. چه زمانی باید از سرویسهای دامنه استفاده کرد؟
- 55. سرویسهای دامنه در مقابل سرویسهای کاربردی (Application Services)
- 56. مخازن (Repositories): انتزاع لایه پایداری
- 57. پیادهسازی واسطها و کلاسهای مخازن
- 58. یک مخزن برای هر ریشه اجتماع: اصل کلیدی
- 59. استراتژیهای جستجو با مخازن
- 60. کارخانهها (Factories): کپسولهسازی ایجاد اشیاء پیچیده
- 61. چه زمانی باید از کارخانهها استفاده کرد؟
- 62. رویدادهای دامنه (Domain Events): اعلام تغییرات حالت
- 63. انتشار و اشتراک رویدادهای دامنه
- 64. سازگاری رویداد و مفهوم سازگاری نهایی
- 65. استفاده از رویدادهای دامنه برای یکپارچهسازی درونی
- 66. رویدادهای دامنه برای حسابرسی و ردیابی
- 67. مشخصات (Specifications): کپسولهسازی قوانین کسبوکار
- 68. اعمال مشخصات در جستجوها و اعتبارسنجیها
- 69. ماژولها: سازماندهی مدل دامنه به صورت منطقی
- 70. معماری لایهای در DDD: بازبینی و کاربرد
- 71. لایه دامنه (Domain Layer): قلب برنامه و منطق کسبوکار
- 72. لایه کاربردی (Application Layer): ارکستراسیون موارد استفاده و هماهنگی
- 73. لایه زیرساخت (Infrastructure Layer): نگرانیهای فنی و پیادهسازی
- 74. لایه ارائه (Presentation Layer): واسط کاربر و نمایش اطلاعات
- 75. فراتر از لایههای سنتی: معماری ششضلعی (Hexagonal/Onion Architecture)
- 76. پورتها و آداپتورها در معماری ششضلعی
- 77. مزایای معماری ششضلعی برای DDD و تستپذیری
- 78. اصل وارونگی وابستگی (Dependency Inversion Principle) در زمینه DDD
- 79. الگوهای طراحی (Design Patterns) مفید در DDD
- 80. الگوهای GRASP و ارتباط آن با DDD
- 81. اعتبارسنجی در DDD: قوانین دامنه و قوانین کاربردی
- 82. رسیدگی به خطاهای دامنه
- 83. لایه ضد فساد (Anti-Corruption Layer - ACL) در جزئیات و پیادهسازی
- 84. ACL برای یکپارچهسازی با سیستمهای قدیمی و خارجی
- 85. الگوهای سازگاری داده: تراکنشی و سازگاری نهایی (Eventual Consistency)
- 86. تفکیک مسئولیتهای دستور و جستجو (CQRS): معرفی و مفاهیم اصلی
- 87. مزایای CQRS همراه با DDD
- 88. پیادهسازی CQRS: مدلهای دستور (Command Models) و مدلهای جستجو (Query Models)
- 89. جداسازی عملیات خواندن و نوشتن (Read/Write Segregation)
- 90. رویدادمحوری (Event Sourcing): ذخیرهسازی رویدادها به جای حالت فعلی
- 91. مزایا و چالشهای Event Sourcing
- 92. ترکیب DDD، CQRS و Event Sourcing برای سیستمهای پیچیده
- 93. Sagaها و مدیران فرآیند (Process Managers) برای فرآیندهای طولانیمدت
- 94. مدیریت سازگاری نهایی در عمل و چالشهای آن
- 95. Idempotency (تکرارپذیری بدون اثر جانبی) در سیستمهای توزیعشده
- 96. DDD و معماری میکروسرویسها
- 97. نگاشت بافتهای محدود به میکروسرویسها: یک به یک یا بیشتر
- 98. ارتباط بین میکروسرویسها در یک زمینه DDD
- 99. ارکستراسیون (Orchestration) در مقابل رقص (Choreography) در میکروسرویسها
- 100. مالکیت داده (Data Ownership) در معماری میکروسرویس
تگها:
DDD
Domain Driven Design
Domain Model
software architecture
software design
آموزش معماری نرم افزار
الگوهای طراحی نرم افزار
برنامه نویسی
برنامه نویسی شی گرا
توسعه نرم افزار
طراحی دامنه محور
معماری DDD
معماری نرم افزار فارسی
معماری نرمافزار
معماری نرمافزار DDD
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.