کتاب رفاکتورینگ (Refactoring) کد بر اساس اصول OOP با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
کد خود را به الماس تبدیل کنید: رفاکتورینگ شیءگرا برای کدنویسان حرفهای کد خود را به الماس تبدیل کنید: رفاکتورینگ شیءگرا برای کدنویسان حرفهای آیا از کدهای پیچیده و غیرقابل نگهداری خسته شدهاید؟ آیا می...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره رفاکتورینگ (Refactoring) کد بر اساس اصول OOP
موضوع کلی: برنامه نویسی
موضوع میانی: برنامهنویسی شیءگرا (OOP)
📋 سرفصلهای دوره
- 1. مقدمهای بر رفاکتورینگ: چرا و چگونه؟
- 2. بدهی فنی (Technical Debt) و نقش رفاکتورینگ
- 3. چرخه عمر توسعه نرمافزار و زمانبندی رفاکتورینگ
- 4. معرفی بوی بد کد (Code Smells): نشانههای نیاز به تغییر
- 5. اهمیت تستهای واحد (Unit Tests) در رفاکتورینگ
- 6. نوشتن تستهای امنیتی قبل از رفاکتورینگ
- 7. اصول برنامهنویسی شیءگرا: مرور و کاربرد در رفاکتورینگ
- 8. اصل کپسولهسازی (Encapsulation) و رفاکتورینگ
- 9. اصل وراثت (Inheritance) و رفاکتورینگ
- 10. اصل چندریختی (Polymorphism) و رفاکتورینگ
- 11. اصل انتزاع (Abstraction) و رفاکتورینگ
- 12. معرفی اصول SOLID: راهنمای طراحی شیءگرا
- 13. تفکر رفاکتورینگ: تغییرات کوچک و گامبهگام
- 14. ابزارهای خودکارسازی رفاکتورینگ در IDEها
- 15. فرهنگ رفاکتورینگ در تیم و سازمان
- 16. متدهای طولانی (Long Method): شناسایی و راهحلها
- 17. کلاسهای بزرگ (Large Class): نشانهها و اثرات
- 18. دادههای تکراری (Duplicate Code): مشکل و ریشهها
- 19. نامهای نامفهوم (Obscure Names): تاثیر بر خوانایی
- 20. لیست پارامترهای طولانی (Long Parameter List)
- 21. وابستگیهای زیاد (Feature Envy): حسادت ویژگی
- 22. کلاسهای دادهای (Data Class): ضد الگوی OOP
- 23. سوئیچهای شرطی پیچیده (Switch Statements): نشانههای کد بد
- 24. کلاسهای تنبل (Lazy Class): بیمصرفی کلاسها
- 25. کلاسهای میانی (Middle Man): واسطههای اضافی
- 26. گروههای دادهای (Data Clumps): تکرار دادهها
- 27. وسواس به نوع اولیه (Primitive Obsession)
- 28. تغییرات پراکنده (Divergent Change): نقض SRP
- 29. جراحی پراکنده (Shotgun Surgery): تغییرات گسترده
- 30. کد مرده (Dead Code) و کد بلااستفاده
- 31. نامگذاری بهتر: تغییر نام (Rename) متغیرها، متدها و کلاسها
- 32. استخراج متد (Extract Method): کوچکسازی و افزایش خوانایی
- 33. جاسازی متد (Inline Method): حذف واسطههای غیرضروری
- 34. جایگزینی متغیر موقت با کوئری (Replace Temp with Query)
- 35. معرفی متغیر توضیحدهنده (Introduce Explaining Variable)
- 36. تقسیم متغیر موقت (Split Temporary Variable)
- 37. جایگزینی عدد جادویی با ثابت نامگذاری شده (Replace Magic Number with Symbolic Constant)
- 38. انتقال متد (Move Method): انتقال مسئولیت به کلاس صحیح
- 39. انتقال فیلد (Move Field): انتقال داده به کلاس صحیح
- 40. استخراج کلاس (Extract Class): شکستن کلاسهای بزرگ
- 41. جاسازی کلاس (Inline Class): ادغام کلاسهای کمفایده
- 42. پنهان کردن نماینده (Hide Delegate): کاهش وابستگی
- 43. حذف واسطه (Remove Middle Man)
- 44. معرفی شیء پارامتر (Introduce Parameter Object): کوتاهسازی لیست پارامتر
- 45. جایگزینی انتصاب به پارامتر با متد (Remove Assignments to Parameters)
- 46. استفاده از Factory Method به جای Constructor
- 47. استخراج اینترفیس (Extract Interface): تعریف قرارداد
- 48. معرفی کلاس انتزاعی (Introduce Abstract Class): انتزاع رفتار مشترک
- 49. فرمبندی متد الگو (Form Template Method)
- 50. جایگزینی الگوریتم (Substitute Algorithm)
- 51. تجزیه شرطی (Decompose Conditional): سادهسازی منطق شرطی
- 52. جایگزینی شرطیهای تو در تو با Guard Clauses
- 53. جایگزینی شرطی با چندریختی (Replace Conditional with Polymorphism)
- 54. رفاکتورینگ برای الگوی Strategy: جایگزینی شرطی با رفتار
- 55. رفاکتورینگ برای الگوی State: مدیریت حالتهای شیء
- 56. جایگزینی کد نوع با کلاس/زیرکلاس (Replace Type Code with Class/Subclasses)
- 57. جایگزینی کد نوع با الگوهای State/Strategy
- 58. معرفی شیء Null (Introduce Null Object): حذف بررسیهای null
- 59. پارامترسازی متد (Parameterize Method): افزایش انعطافپذیری
- 60. جداسازی کوئری از تغییردهنده (Separate Query from Modifier)
- 61. حذف پرچم کنترلی (Remove Control Flag)
- 62. یکپارچهسازی عبارتهای شرطی (Consolidate Conditional Expression)
- 63. یکپارچهسازی قطعات شرطی تکراری (Consolidate Duplicate Conditional Fragments)
- 64. جایگزینی حلقه با Pipeline (Replace Loop with Pipeline)
- 65. کپسولهسازی مجموعه (Encapsulate Collection)
- 66. SRP: شناسایی نقض اصل مسئولیت یگانه (Single Responsibility Principle)
- 67. SRP: اعمال Extract Class برای رعایت مسئولیت یگانه
- 68. SRP: رفاکتورینگ به الگوی Command برای SRP
- 69. OCP: طراحی برای اصل باز/بسته (Open/Closed Principle)
- 70. OCP: رفاکتورینگ با الگوی Strategy برای توسعهپذیری
- 71. OCP: رفاکتورینگ با الگوی Template Method برای توسعهپذیری
- 72. LSP: درک نقض اصل جایگزینی لیسکوف (Liskov Substitution Principle)
- 73. LSP: اطمینان از زیرنوعسازی رفتاری
- 74. LSP: رفاکتورینگ سلسله مراتب وراثت برای LSP
- 75. ISP: اهمیت اصل جداسازی اینترفیس (Interface Segregation Principle)
- 76. ISP: استخراج اینترفیسهای وظیفهمحور
- 77. ISP: رفاکتورینگ اینترفیسهای حجیم (Fat Interfaces)
- 78. DIP: معرفی اصل وارونگی وابستگی (Dependency Inversion Principle)
- 79. DIP: درک تزریق وابستگی (Dependency Injection)
- 80. DIP: رفاکتورینگ به تزریق وابستگی (پیادهسازی دستی)
- 81. DIP: رفاکتورینگ با Containerهای IoC (مقدمه)
- 82. DIP: رفاکتورینگ برای قابلیت تستپذیری (Mocks و Stubs)
- 83. بررسی رابطه بین Cohesion و Coupling در رفاکتورینگ
- 84. رفاکتورینگ برای رعایت اصل وابستگیهای بدون چرخه (Acyclic Dependencies Principle)
- 85. رفاکتورینگ برای رعایت اصل وابستگیهای پایدار (Stable Dependencies Principle)
- 86. استراتژیهای رفاکتورینگ کد میراثی (Legacy Code)
- 87. متد میکادو (Mikado Method) برای کد میراثی
- 88. معرفی تستهای کاراکتریزاسیون (Characterization Tests)
- 89. رفاکتورینگ دیتابیسها: اصول و چالشها
- 90. اعمال رفاکتورینگ در معماری میکروسرویسها
- 91. ملاحظات عملکردی در رفاکتورینگ (Performance Refactoring)
- 92. ملاحظات امنیتی در رفاکتورینگ (Security Refactoring)
- 93. رفاکتورینگ برای مدیریت همروندی (Concurrency Refactoring)
- 94. رفاکتورینگ ضدالگوها (Anti-Patterns)
- 95. اندازهگیری تاثیر رفاکتورینگ و معیارهای آن
- 96. رفاکتورینگ در محیط تیمی و مشارکت
- 97. برنامهنویسی زوجی (Pair Programming) و رفاکتورینگ
- 98. بازبینی کد (Code Review) برای شناسایی فرصتهای رفاکتورینگ
- 99. رفاکتورینگ در برابر بازنویسی کامل (Rewriting vs. Refactoring)
- 100. آینده رفاکتورینگ و نقش هوش مصنوعی
تگها:
clean code
design patterns
Java
Object Oriented Programming
OOP
PHP
Python
Refactoring
Software Development
برنامه نویسی شیءگرا
توسعه نرم افزار
رفاکتورینگ
طراحی الگو
کد تمیز
کدنویسی
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.