کتاب بازآرایی کدهای اسپاگتی به معماری Domain-Driven Design با رویکرد عملی با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره بازآرایی کدهای اسپاگتی به معماری Domain-Driven Design با رویکرد عملی
موضوع کلی: مهندسی نرمافزار و طراحی معماری سیستمها
موضوع میانی: طراحی مبتنی بر دامنه و بازآرایی معماری نرمافزار
📋 سرفصلهای دوره
- 1. مبانی Domain-Driven Design و مسئله کدهای اسپاگتی
- 2. تشخیص Ravioli Code و نشانههای طراحی نامناسب
- 3. تفاوت کد اسپاگتی، Ravioli Code و کد مبتنی بر دامنه
- 4. شناخت علائم معماری فرسوده در پروژههای نرمافزاری
- 5. تحلیل ساختار فعلی یک سیستم پیش از Refactoring
- 6. شناسایی منطق کسبوکار پراکنده در کد
- 7. تفکیک منطق کسبوکار از منطق فنی
- 8. استخراج مفاهیم دامنه از کد موجود
- 9. شناسایی واژگان و مفاهیم کلیدی دامنه
- 10. ساخت واژهنامه مشترک با رویکرد Ubiquitous Language
- 11. مدلسازی دامنه از روی رفتارهای واقعی سیستم
- 12. شناسایی Entityهای دامنه
- 13. شناسایی Value Objectها
- 14. تشخیص تفاوت Entity و Value Object در کد موجود
- 15. تعریف Aggregate و مرزهای آن
- 16. شناسایی Aggregate Root در سیستمهای موجود
- 17. طراحی مرزهای مناسب Aggregate
- 18. شناسایی Repositoryهای دامنه
- 19. تفکیک Domain Service از Application Service
- 20. تعریف Domain Event در معماری مبتنی بر دامنه
- 21. شناسایی Invariantهای کسبوکار
- 22. انتقال قواعد کسبوکار از لایههای فنی به دامنه
- 23. مدیریت وابستگیها در مدل دامنه
- 24. طراحی لایه Domain در یک سیستم موجود
- 25. طراحی لایه Application و Use Caseها
- 26. طراحی لایه Infrastructure بدون آلودگی دامنه
- 27. طراحی رابط کاربری در معماری Domain-Driven
- 28. تفکیک Concernهای فنی از Concernهای دامنه
- 29. شناسایی Bounded Contextها در سیستمهای بزرگ
- 30. تقسیم یک Monolith بر اساس Bounded Context
- 31. تعریف Context Boundaryهای قابل نگهداری
- 32. ارتباط میان Bounded Contextها
- 33. طراحی Context Map برای سیستم موجود
- 34. مدیریت مدلهای متفاوت یک مفهوم در Contextهای مختلف
- 35. تشخیص Shared Kernel و محدودیتهای آن
- 36. جلوگیری از وابستگی مستقیم میان Contextها
- 37. بازآرایی ماژولهای یک سیستم بر اساس دامنه
- 38. تبدیل کلاسهای فنی به مدلهای معنادار دامنه
- 39. تبدیل Utilityهای پراکنده به سرویسهای دامنه
- 40. کاهش God Objectها در فرآیند Refactoring
- 41. کاهش Coupling میان اجزای سیستم
- 42. افزایش Cohesion در ماژولهای دامنه
- 43. مدیریت وابستگیهای چرخهای هنگام Refactoring
- 44. Refactoring تدریجی بدون بازنویسی کامل سیستم
- 45. استفاده از Strangler Pattern برای بازآرایی تدریجی
- 46. طراحی Anti-Corruption Layer در سیستمهای قدیمی
- 47. مهاجرت تدریجی از معماری Legacy به DDD
- 48. حفظ سازگاری API هنگام بازآرایی کد
- 49. مدیریت Database در فرآیند تبدیل به DDD
- 50. جداسازی مدل دامنه از مدل پایگاه داده
- 51. مقابله با Anemic Domain Model
- 52. تبدیل Transaction Script به Domain Model
- 53. تبدیل Serviceهای بزرگ به Use Caseهای مشخص
- 54. تبدیل شرطهای پیچیده به قواعد دامنه
- 55. استفاده هدفمند از Factory در مدل دامنه
- 56. مدیریت چرخه حیات Entityها با Factory و Repository
- 57. طراحی Command و Query در مدل دامنه
- 58. تفکیک عملیات خواندن و نوشتن در سیستم
- 59. کاربرد CQRS در بازآرایی سیستمهای پیچیده
- 60. استفاده از Domain Event برای کاهش وابستگی
- 61. مدیریت Consistency در Aggregateها
- 62. طراحی Transaction Boundary بر اساس Aggregate
- 63. مدیریت Concurrency در مدل دامنه
- 64. تست واحد برای Entityها و Value Objectها
- 65. تست قواعد کسبوکار مستقل از Infrastructure
- 66. تست Aggregateها و Invariantهای دامنه
- 67. تست Application Serviceها و Use Caseها
- 68. تست قرارداد میان Bounded Contextها
- 69. استفاده از Characterization Test پیش از Refactoring
- 70. حفظ رفتار سیستم موجود در طول Refactoring
- 71. شناسایی و مدیریت Technical Debt
- 72. اندازهگیری Coupling و Cohesion پیش و پس از Refactoring
- 73. معیارهای ارزیابی کیفیت مدل دامنه
- 74. اشتباهات رایج در پیادهسازی DDD
- 75. جلوگیری از Overengineering در Domain Model
- 76. تشخیص زمان مناسب برای استفاده از DDD
- 77. DDD در سیستمهای کوچک و متوسط
- 78. DDD در Monolithهای بزرگ
- 79. DDD در Microserviceهای مبتنی بر دامنه
- 80. تأثیر DDD بر طراحی API و قراردادهای سرویس
- 81. مدیریت Integration با سیستمهای Legacy
- 82. مدیریت پیامها و رویدادهای بین Contextها
- 83. مدیریت خطاهای دامنه و خطاهای فنی
- 84. طراحی Logging و Monitoring برای معماری DDD
- 85. مدیریت Migration در سیستمهای در حال سرویسدهی
- 86. بازآرایی تدریجی یک پروژه واقعی از Ravioli Code به DDD
- 87. تحلیل قبل و بعد معماری در یک پروژه عملی
- 88. طراحی نقشه مهاجرت از کد موجود به مدل دامنه
- 89. تدوین استراتژی Refactoring مرحلهبهمرحله
- 90. ارزیابی موفقیت پروژه بازآرایی معماری
تگها:
Aggregate
Bounded Context
Clean Architecture
DDD
Domain Driven Design
Domain Model
Legacy Code
Ravioli Code
Refactoring
Technical Debt
بازآرایی کد
کد اسپاگتی
معماری دامنه محور
معماری نرم افزار
مهندسی نرم افزار
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.