کتاب بازآرایی کدهای اسپاگتی به معماری Domain-Driven Design با رویکرد عملی با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB

انتخاب پلن

انتخاب پلن برای ادامه خرید الزامی است.

پرداخت اقساطی
در صورت خرید اقساطی هر قسط: 62,488 تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.
پرداخت اقساطی با دیجی‌پی پرداخت اقساطی با ترب‌پی

🎓 دوره آموزشی جامع

📚 اطلاعات دوره

عنوان دوره: دوره بازآرایی کدهای اسپاگتی به معماری 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 بازآرایی کد کد اسپاگتی معماری دامنه محور معماری نرم افزار مهندسی نرم افزار

نظرات

هنوز نظری ثبت نشده است.

وارد شوید تا نظر ثبت کنید.