کتاب SOLID برای کد قدیمی (Legacy Code): راهنمای مهاجرت و بهبود با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
SOLID برای کد قدیمی (Legacy Code): راهنمای مهاجرت و بهبود - تحولی در کدنویسی شما SOLID برای کد قدیمی (Legacy Code): راهنمای مهاجرت و بهبود - ارتقا کیفیت کد شما در یک چشم بر هم زدن! آیا با کد قدیمی دست...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره SOLID برای کد قدیمی (Legacy Code): راهنمای مهاجرت و بهبود
موضوع کلی: برنامه نویسی
موضوع میانی: اصول SOLID
📋 سرفصلهای دوره
- 1. تعریف کد قدیمی (Legacy Code) و چالشهای آن
- 2. هزینه تجاری بدهی فنی (Technical Debt)
- 3. چرا بازآرایی (Refactor) کنیم؟ اهداف و مزایا
- 4. مقدمهای بر اصول کد تمیز (Clean Code)
- 5. مروری بر اصول طراحی و اهمیت آنها
- 6. معرفی اجمالی اصول SOLID
- 7. تفکر SOLID برای بهبود کد
- 8. درک "بوی کد" (Code Smells) به عنوان نقض SOLID
- 9. نقش تستنویسی در بازآرایی کد قدیمی
- 10. اهداف دوره و مسیر یادگیری
- 11. اصل مسئولیت یگانه (SRP): تعریف "یک دلیل برای تغییر"
- 12. شناسایی نقض SRP در عمل
- 13. مزایای همبستگی بالا (High Cohesion)
- 14. SRP و لایههای معماری (استفاده برای جداسازی مسئولیتها)
- 15. اصل باز/بسته (OCP): باز برای توسعه، بسته برای تغییر
- 16. تشخیص نقضهای رایج OCP (مانند دستورات Switch)
- 17. دستیابی به OCP با چندریختی (Polymorphism) و انتزاع (Abstraction)
- 18. نقش الگوهای طراحی (Strategy, Template Method) در OCP
- 19. اصل جایگزینی لیسکوف (LSP): زیرنوعها باید قابل جایگزینی باشند
- 20. درک زیرنوعسازی رفتاری (Behavioral Subtyping)
- 21. نقضهای رایج LSP: قراردادهای شکسته و نتایج غیرمنتظره
- 22. LSP و تضمین سازگاری رفتاری در سلسلهمراتب وراثت
- 23. اصل تفکیک رابط (ISP): مشتری نباید به رابطهایی که استفاده نمیکند وابسته باشد
- 24. مشکل "رابطهای چاق" (Fat Interfaces) و راهحلها
- 25. استراتژیهایی برای تفکیک رابطهای بزرگ به کوچکتر
- 26. ISP در مقابل SRP برای رابطها: تمایز و همافزایی
- 27. اصل وارونگی وابستگی (DIP): وابسته به انتزاعات، نه جزئیات
- 28. شناسایی کوپلینگ تنگاتنگ و وابستگیهای مشخص (Concretions)
- 29. ماژولهای سطح بالا در مقابل ماژولهای سطح پایین و وابستگی متقابل
- 30. DIP به عنوان بنیاد تستپذیری و انعطافپذیری سیستم
- 31. تور امنیتی: اهمیت تستها
- 32. کار بدون تست: عامل ترس در کد قدیمی
- 33. تستهای مشخصهسازی (Characterization Tests): مستندسازی رفتار موجود
- 34. شناسایی "درزها" (Seams) برای تستپذیری
- 35. نوشتن تستهای متمرکز و کوچک برای کد قدیمی
- 36. بازآرایی استراتژیک: قانون "پیشاهنگ" (Boy Scout Rule)
- 37. متد میکادو (Mikado Method): اولویتبندی بازآرایی پیچیده
- 38. شناسایی "بوی کد" فراتر از SOLID
- 39. اندازهگیری بدهی فنی: معیارها و ابزارها
- 40. پوشش کد (Code Coverage) به عنوان کمککننده بازآرایی
- 41. شکستن وابستگیها: استخراج رابطها برای وابستگیهای خارجی
- 42. کلاسهای Wrapper برای مولفههای غیرقابل تست
- 43. الگوی درخت انجیر خفهکننده (Strangler Fig Pattern) برای مهاجرت تدریجی
- 44. شکستن وابستگیهای استاتیک و سراسری
- 45. معرفی تزریق وابستگی (DI) در سیستمهای قدیمی (گامهای اولیه)
- 46. تکنیکهای بازآرایی و ابزارها: Extract Method, Extract Class
- 47. تکنیکهای بازآرایی و ابزارها: Introduce Parameter Object
- 48. تغییر نام، انتقال، یکپارچهسازی: بازآراییهای پایه
- 49. پشتیبانی IDE برای بازآرایی خودکار
- 50. استفاده از سیستم کنترل نسخه برای بازآرایی ایمن
- 51. بازآرایی برای SRP: تشخیص مسئولیتهای ترکیبی
- 52. استخراج منطق تجاری از رابط کاربری/پایداری
- 53. تقسیم کلاسها و ماژولهای "خدا" (God Classes)
- 54. استفاده از Value Object برای همبستگی دادهها
- 55. استراتژیهای مدیریت مسائل Cross-Cutting (Logging, Security)
- 56. بازآرایی برای OCP: جایگزینی منطق شرطی (Switch/If-Else) با چندریختی
- 57. پیادهسازی الگوی استراتژی (Strategy Pattern) برای الگوریتمهای متغیر
- 58. به کارگیری الگوی متد الگو (Template Method Pattern) برای سفارشیسازی گردش کار
- 59. استفاده از الگوی مشخصات (Specification Pattern) برای فیلترینگ/قوانین انعطافپذیر
- 60. متدهای کارخانه (Factory Methods) برای ایجاد سلسلهمراتب اشیاء انعطافپذیر
- 61. بازآرایی برای LSP: شناسایی نقضهای لیسکوف در درختان وراثت
- 62. رفع سناریوهای "مشکل مربع-مستطیل"
- 63. بازآرایی وراثت به ترکیب (Composition) در صورت لزوم
- 64. تضمین رفتار سازگار در سراسر زیرنوعها
- 65. استفاده از رابطها برای تعریف قراردادهای واضح و جلوگیری از نقض LSP
- 66. بازآرایی برای ISP: تجزیه رابطهای یکپارچه
- 67. ایجاد رابطهای نقش (Role Interfaces) برای نیازهای مشتری خاص
- 68. استفاده از الگوی آداپتور (Adapter Pattern) برای انطباق با رابطهای کوچکتر
- 69. به حداقل رساندن وابستگیها از طریق تفکیک رابط
- 70. اعمال ISP به Event Listenerها و Callbacks
- 71. بازآرایی برای DIP: وارونگی جریان کنترل (از مشخص به انتزاعی)
- 72. پیادهسازی دستی تزریق وابستگی (Pure DI)
- 73. معرفی یک کانتینر DI ساده (مانند TinyIoC، سفارشی)
- 74. بازآرایی وابستگیهای کدگذاری شده و Singletons
- 75. جداسازی خدمات و APIهای خارجی
- 76. ایجاد "لایههای ضد فساد" (Anti-Corruption Layers) برای سیستمهای خارجی
- 77. ریشه ترکیب (Composition Root): محل اتصال وابستگیها
- 78. بازآرایی برای تستپذیری از طریق وارونگی وابستگی
- 79. مدیریت پیکربندی و وابستگیهای محیطی خاص
- 80. DIP پیشرفته: Service Locator (چه زمانی استفاده کنیم و چرا نه)
- 81. مدیریت سناریوهای پیچیده کد قدیمی: بازآرایی لایههای تعامل با پایگاه داده
- 82. اعمال SOLID در کد UI (ملاحظات MVVM, MVP, MVC)
- 83. کار با مرزهای تراکنشی و سیستمهای توزیع شده
- 84. یکپارچهسازی کد قدیمی با میکروسرویسهای جدید
- 85. استراتژیهایی برای تجزیه سیستمهای قدیمی در مقیاس بزرگ
- 86. حفظ کیفیت و بهبود: خودکارسازی کیفیت کد با ابزارهای تحلیل استاتیک
- 87. ادغام بررسیهای SOLID در خطوط CI/CD
- 88. بررسی کد (Code Review) متمرکز بر اصول طراحی
- 89. ایجاد فرهنگ بازآرایی مستمر
- 90. آموزش تیم در مورد بهترین شیوههای SOLID
- 91. تصمیمگیری استراتژیک: چه زمانی بازآرایی کنیم و چه زمانی بازنویسی
- 92. تحلیل هزینه-فایده برای کاهش بدهی فنی
- 93. جلب حمایت مدیریت برای تلاشهای بازآرایی
- 94. نقش طراحی تکاملی (Evolutionary Design) در بهبود پایدار
- 95. اندازهگیری بازگشت سرمایه (ROI) بازآرایی SOLID
- 96. مقدمهای بر دیگر اصول طراحی (DRY, YAGNI, KISS)
- 97. کاوش الگوهای معماری برای نگهداری طولانیمدت
- 98. طراحی مبتنی بر دامنه (DDD) و همافزایی SOLID
- 99. حفظ شتاب: سفر طولانیمدت به سوی سلامت کد
- 100. نکات پایانی: آینده کد قدیمی شما با SOLID
تگها:
SOLID برای کد قدیمی (Legacy Code): راهنمای مهاجرت و بهبود
آموزش آنلاین
اصول SOLID
برنامه نویسی
دوره آموزشی
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.