اپلیکیشن اندرویدی فلشکارت آموزشی Automated Tools for Maintaining Clean Code
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره Automated Tools for Maintaining Clean Code
موضوع کلی: برنامه نویسی
موضوع میانی: کدنویسی تمیز (Clean Code)
📋 سرفصلهای دوره
- 1. مقدمه: چرا کد تمیز اهمیت دارد؟
- 2. تعریف کد تمیز و ویژگیهای آن
- 3. هزینههای کد نامرتب (Technical Debt)
- 4. معیارهای کد تمیز: خوانایی و نگهداری
- 5. نامگذاری معنیدار: متغیرها و توابع
- 6. نامگذاری معنیدار: کلاسها و ماژولها
- 7. اجتناب از نامهای مبهم یا گمراهکننده
- 8. ایجاد تمایزهای معنیدار در نامگذاری
- 9. نامهای قابل تلفظ و قابل جستجو
- 10. توابع کوچک و متمرکز (Do One Thing)
- 11. پارامترهای تابع: کاهش تعداد و وضوح
- 12. اجتناب از اثرات جانبی (Side Effects)
- 13. جداسازی دستور و پرس و جو (Command-Query Separation)
- 14. کامنتگذاری: چه زمانی، چگونه و چرا باید پرهیز کرد
- 15. کدهای خود-توضیحدهنده به جای کامنت
- 16. فرمتبندی کد: اهمیت یکپارچگی
- 17. چگالی عمودی و فاصله گذاری
- 18. سازماندهی افقی و خطوط طولانی
- 19. تورفتگیها (Indentation) و خوانایی
- 20. اصول کلی چیدمان و ساختار کد
- 21. اشیاء و ساختارهای داده: تمایز و کاربرد
- 22. قانون دیمیتر (Law of Demeter)
- 23. مدیریت خطا با استفاده از Exception ها
- 24. طراحی سیستمهای مقاوم در برابر خطا
- 25. اجتناب از بازگرداندن مقادیر Null
- 26. اصل مسئولیت واحد (Single Responsibility Principle - SRP)
- 27. اصل باز/بسته (Open/Closed Principle - OCP)
- 28. اصل جایگزینی لیسکوف (Liskov Substitution Principle - LSP)
- 29. اصل تفکیک رابط (Interface Segregation Principle - ISP)
- 30. اصل وارونگی وابستگی (Dependency Inversion Principle - DIP)
- 31. اصل DRY (Don't Repeat Yourself)
- 32. اصل KISS (Keep It Simple, Stupid)
- 33. اصل YAGNI (You Aren't Gonna Need It)
- 34. چسبندگی بالا (High Cohesion)
- 35. وابستگی کم (Low Coupling)
- 36. انتزاع (Abstraction) و کپسولهسازی (Encapsulation)
- 37. ارجحیت ترکیب بر وراثت (Composition over Inheritance)
- 38. مدیریت پیچیدگیهای غیرضروری
- 39. معماری تمیز و کد تمیز
- 40. مروری بر الگوهای طراحی و نقش آنها در کد تمیز
- 41. بوی کد (Code Smells): شناسایی نشانههای کد نامرتب
- 42. کد تکراری (Duplicated Code)
- 43. متد طولانی (Long Method)
- 44. کلاس بزرگ (Large Class)
- 45. حسادت ویژگی (Feature Envy)
- 46. تودههای داده (Data Clumps)
- 47. استفاده از Switch Statement
- 48. وراثت موازی (Parallel Inheritance Hierarchies)
- 49. جراحی تفنگ ساچمهای (Shotgun Surgery)
- 50. تغییر واگرا (Divergent Change)
- 51. وسواس به primitive ها (Primitive Obsession)
- 52. کلیگویی گمانهزنی (Speculative Generality)
- 53. میدان موقت (Temporary Field)
- 54. بازآرایی (Refactoring): تعریف، چرا و چگونه
- 55. چرخه Red-Green-Refactor در TDD
- 56. توسعه مبتنی بر تست (Test-Driven Development - TDD)
- 57. ویژگیهای تستهای خوب (اصول FIRST)
- 58. مبانی تست واحد (Unit Testing)
- 59. تستهای یکپارچهسازی (Integration Tests)
- 60. تستهای End-to-End و نگهداری آنها
- 61. استفاده از Mock، Stub و Fake در تستها
- 62. پوشش تست (Test Coverage) و اهمیت آن
- 63. نوشتن کدی که قابلیت تست بالایی دارد
- 64. اجتناب از تستهای شکننده (Fragile Tests)
- 65. مقدمهای بر توسعه مبتنی بر رفتار (Behavior-Driven Development - BDD)
- 66. نیاز به ابزارهای خودکار برای نگهداری کد تمیز
- 67. مروری بر دستهبندی ابزارهای خودکارسازی
- 68. مزایای تجزیه و تحلیل خودکار کد
- 69. یکپارچهسازی ابزارها در جریان کار توسعه
- 70. تجزیه و تحلیل استاتیک کد (Static Code Analysis): مقدمه
- 71. Linting: چیستی و هدف آن
- 72. قالببندی کد خودکار (Code Formatters)
- 73. ابزارهای اندازهگیری معیارهای پیچیدگی کد
- 74. ابزارهای بازآرایی خودکار (Automated Refactoring Tools)
- 75. نقش ابزارهای CI/CD در نگهداری کد تمیز
- 76. پیکربندی ابزارهای تجزیه و تحلیل استاتیک
- 77. سفارشیسازی قوانین Linter
- 78. نادیده گرفتن هشدارهای خاص (Ignoring Warnings)
- 79. تفسیر و درک گزارشهای Linter
- 80. یکپارچهسازی Linter ها با IDE ها (مثال: ESLint, Pylint)
- 81. SonarQube: یک پلتفرم جامع برای کیفیت کد
- 82. راهاندازی و پیکربندی پروژهها در SonarQube
- 83. اجرای تحلیل کد با SonarQube
- 84. درک دروازههای کیفیت (Quality Gates) در SonarQube
- 85. Code Climate و ابزارهای مشابه برای گزارشدهی
- 86. تضمین سبک کد ثابت با قالببندها
- 87. Prettier برای پروژههای فرانتاند
- 88. Black برای پروژههای پایتون
- 89. Gofmt برای زبان Go
- 90. استفاده از ویژگیهای بازآرایی خودکار در IDE ها
- 91. خودکارسازی بازبینی کد (Code Review)
- 92. معیارهای پیچیدگی کد: Cyclomatic Complexity
- 93. معیارهای پیچیدگی کد: Cognitive Complexity
- 94. تحلیل سلامت وابستگیها (Dependencies)
- 95. یکپارچهسازی ابزارهای کد تمیز با سیستم کنترل نسخه (Git Hooks)
- 96. پیادهسازی بررسیهای کد تمیز در پایپلاین CI
- 97. پیکربندی CI/CD برای شکستن بیلد در صورت نقض Quality Gate
- 98. ترمیم خودکار (Automated Remediation) و اصلاح کد
- 99. پایش و گزارشدهی کیفیت کد در طول زمان
- 100. ایجاد فرهنگ بهبود مستمر در کیفیت کد
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.