کتاب دستیابی به انعطاف‌پذیری در نرم‌افزار با SOLID با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB

دستیابی به انعطاف‌پذیری در نرم‌افزار با SOLID | دوره آموزش اصول SOLID دستیابی به انعطاف‌پذیری در نرم‌افزار با SOLID معرفی دوره آیا از نرم‌افزارهای پیچیده و شکننده‌ای که با کوچکترین تغییرات، کل سیستم ر...

انتخاب پلن

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

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

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

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

عنوان دوره: دوره دستیابی به انعطاف‌پذیری در نرم‌افزار با SOLID

موضوع کلی: برنامه نویسی

موضوع میانی: اصول SOLID

📋 سرفصل‌های دوره

  • 1. مقدمه‌ای بر پیچیدگی در نرم‌افزار
  • 2. کد شکننده (Fragile) چیست و چرا یک مشکل است؟
  • 3. کد انعطاف‌ناپذیر (Rigid) و هزینه‌های آن
  • 4. معرفی اصول SOLID به عنوان راه حل
  • 5. تاریخچه و هدف اصلی SOLID
  • 6. مروری سریع بر پنج اصل SOLID
  • 7. مفاهیم کلیدی: وابستگی (Coupling)
  • 8. مفاهیم کلیدی: انسجام (Cohesion)
  • 9. ارتباط بین وابستگی کم و انسجام بالا
  • 10. یادآوری مفاهیم شیءگرایی: کپسوله‌سازی (Encapsulation)
  • 11. یادآوری مفاهیم شیءگرایی: وراثت (Inheritance)
  • 12. یادآوری مفاهیم شیءگرایی: چندریختی (Polymorphism)
  • 13. یادآوری مفاهیم شیءگرایی: انتزاع (Abstraction)
  • 14. چرا اصول SOLID برای طراحی مدرن نرم‌افزار حیاتی هستند؟
  • 15. آماده‌سازی محیط و پروژه نمونه برای دوره
  • 16. تعریف اصل تک مسئولیتی (SRP)
  • 17. "مسئولیت" واقعا به چه معناست؟
  • 18. مفهوم "دلیل برای تغییر" (Reason to Change)
  • 19. شناسایی نقض SRP در کد: علائم و نشانه‌ها
  • 20. مثال عملی: کلاس خدا (God Class) و نقض SRP
  • 21. تجزیه یک کلاس بزرگ به کلاس‌های کوچکتر و تک مسئولیتی
  • 22. نقش SRP در افزایش خوانایی و قابلیت نگهداری کد
  • 23. SRP و ارتباط آن با انسجام بالا (High Cohesion)
  • 24. مطالعه موردی: ریفکتورینگ کلاس User با چندین مسئولیت
  • 25. SRP در لایه‌های مختلف نرم‌افزار (UI, Business, Data)
  • 26. چالش‌ها و هزینه‌های اعمال بیش از حد SRP
  • 27. الگوهای طراحی مرتبط با SRP: Facade Pattern
  • 28. ابزارهایی برای تحلیل و شناسایی نقض SRP
  • 29. تمرین عملی: پیدا کردن و اصلاح نقض SRP در یک پروژه
  • 30. جمع‌بندی SRP: مزایا و معایب
  • 31. تعریف اصل باز/بسته (OCP)
  • 32. "باز برای توسعه، بسته برای تغییر" به چه معناست؟
  • 33. نقش کلیدی انتزاع (Abstraction) در پیاده‌سازی OCP
  • 34. شناسایی نقض OCP: جستجوی دستورات if/else و switch
  • 35. مثال عملی: افزودن یک قابلیت جدید بدون تغییر کد موجود
  • 36. معرفی الگوی استراتژی (Strategy Pattern) به عنوان راهکار OCP
  • 37. پیاده‌سازی عملی Strategy Pattern برای رعایت OCP
  • 38. معرفی الگوی متد قالب (Template Method Pattern)
  • 39. پیاده‌سازی عملی Template Method برای رعایت OCP
  • 40. OCP و افزونه‌ها (Plugins): معماری قابل توسعه
  • 41. مطالعه موردی: ریفکتورینگ یک سیستم پردازش سفارش برای OCP
  • 42. چالش‌های پیاده‌سازی OCP: پیش‌بینی تغییرات آینده
  • 43. ارتباط OCP با اصل تک مسئولیتی (SRP)
  • 44. تمرین عملی: توسعه یک قابلیت جدید با رعایت OCP
  • 45. جمع‌بندی OCP: دستیابی به پایداری در برابر تغییرات
  • 46. تعریف اصل جایگزینی لیسکوف (LSP)
  • 47. اهمیت وراثت صحیح: رابطه "is-a"
  • 48. مفهوم قرارداد رفتاری (Behavioral Contract)
  • 49. شناسایی نقض LSP: رفتار غیرمنتظره در کلاس‌های فرزند
  • 50. مثال کلاسیک نقض LSP: مستطیل و مربع
  • 51. تحلیل عمیق مشکل مستطیل و مربع و راه‌حل‌های آن
  • 52. پیش‌شرط‌ها (Preconditions) و پس‌شرط‌ها (Postconditions)
  • 53. قوانین LSP: تقویت پیش‌شرط‌ها مجاز نیست
  • 54. قوانین LSP: تضعیف پس‌شرط‌ها مجاز نیست
  • 55. نامتغیرها (Invariants) و نقش آن‌ها در LSP
  • 56. مطالعه موردی: ریفکتورینگ یک سلسله‌مراتب وراثت برای رعایت LSP
  • 57. پرهیز از پرتاب NotImplementedException در متدهای override شده
  • 58. LSP و ارتباط آن با اصل باز/بسته (OCP)
  • 59. تمرین عملی: شناسایی و اصلاح نقض LSP در یک سلسله‌مراتب کلاس
  • 60. جمع‌بندی LSP: تضمین صحت رفتار در سلسله مراتب وراثت
  • 61. تعریف اصل تفکیک اینترفیس (ISP)
  • 62. مشکل اینترفیس‌های بزرگ و فربه (Fat Interfaces)
  • 63. "کلاینت‌ها نباید مجبور به وابستگی به متدهایی شوند که استفاده نمی‌کنند"
  • 64. شناسایی نقض ISP: پیاده‌سازی‌های خالی یا استثناها
  • 65. مثال عملی: تفکیک یک اینترفیس IWorker بزرگ
  • 66. مفهوم اینترفیس‌های نقش (Role Interfaces)
  • 67. چگونگی طراحی اینترفیس‌های کوچک و منسجم
  • 68. مطالعه موردی: ریفکتورینگ یک سیستم با اینترفیس‌های بزرگ
  • 69. ISP و تاثیر آن بر کاهش وابستگی (Decoupling)
  • 70. الگوی آداپتور (Adapter Pattern) به عنوان راهکاری برای ISP
  • 71. ارتباط ISP با اصل تک مسئولیتی (SRP) در سطح اینترفیس
  • 72. ISP در زبان‌های بدون اینترفیس صریح (مانند پایتون)
  • 73. چالش‌ها: چه زمانی یک اینترفیس "بیش از حد" بزرگ است؟
  • 74. تمرین عملی: تفکیک یک اینترفیس بزرگ در پروژه نمونه
  • 75. جمع‌بندی ISP: ایجاد کدهای ماژولار و انعطاف‌پذیر
  • 76. تعریف اصل وارونگی وابستگی (DIP)
  • 77. ماژول‌های سطح بالا در مقابل ماژول‌های سطح پایین
  • 78. قانون اول DIP: ماژول‌های سطح بالا نباید به ماژول‌های سطح پایین وابسته باشند
  • 79. قانون دوم DIP: هر دو باید به انتزاع‌ها (Abstractions) وابسته باشند
  • 80. وارونگی وابستگی در عمل: کنترل جریان چگونه معکوس می‌شود؟
  • 81. مفهوم وارونگی کنترل (Inversion of Control - IoC)
  • 82. معرفی تزریق وابستگی (Dependency Injection - DI)
  • 83. انواع تزریق وابستگی: Constructor, Setter, Interface Injection
  • 84. پیاده‌سازی عملی تزریق وابستگی از طریق Constructor
  • 85. نقش کانتینرهای IoC/DI در مدیریت وابستگی‌ها
  • 86. مطالعه موردی: ریفکتورینگ یک کلاس با وابستگی‌های مستقیم (Hard-coded)
  • 87. DIP و معماری لایه‌ای: شکستن وابستگی بین لایه‌ها
  • 88. ارتباط DIP با اصل باز/بسته (OCP)
  • 89. تمرین عملی: حذف وابستگی مستقیم و پیاده‌سازی DIP
  • 90. جمع‌بندی DIP: کلید دستیابی به معماری قابل تست و ماژولار
  • 91. هم‌افزایی اصول SOLID: چگونه این پنج اصل با هم کار می‌کنند
  • 92. مطالعه موردی جامع: طراحی یک ویژگی جدید با رعایت تمام اصول SOLID
  • 93. اصول SOLID در مقابل اصول دیگر: DRY, KISS, YAGNI
  • 94. SOLID و الگوهای طراحی (Design Patterns): یک رابطه دوطرفه
  • 95. کاربرد SOLID در معماری‌های مدرن: معماری پاک (Clean Architecture)
  • 96. کاربرد SOLID در میکروسرویس‌ها
  • 97. تست‌پذیری (Testability) به عنوان محصول جانبی رعایت SOLID
  • 98. اشتباهات رایج و ضدالگوها (Anti-Patterns) در پیاده‌سازی SOLID
  • 99. هزینه و پیچیدگی SOLID: چه زمانی باید از آن‌ها چشم‌پوشی کرد؟
  • 100. جمع‌بندی دوره و گام‌های بعدی برای تبدیل شدن به یک معمار نرم‌افزار بهتر
تگ‌ها: آموزش آنلاین اصول SOLID برنامه نویسی دستیابی به انعطاف‌پذیری در نرم‌افزار با SOLID دوره آموزشی

نظرات

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

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