اپلیکیشن اندرویدی فلشکارت آموزشی کدنویسی تمیز در پروژههای بزرگ و تیمی
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره کدنویسی تمیز در پروژههای بزرگ و تیمی
موضوع کلی: برنامه نویسی
موضوع میانی: کدنویسی تمیز (Clean Code)
📋 سرفصلهای دوره
- 1. معرفی دوره: چرا کد تمیز مهم است؟
- 2. تعریف کد تمیز و ویژگیهای آن
- 3. قانون "پیشاهنگ": بهتر کردن کد در هر تغییر
- 4. تأثیر کد کثیف بر هزینه و زمان پروژه
- 5. کد تمیز و نگهداریپذیری پروژه
- 6. کد تمیز و مقیاسپذیری (Scalability)
- 7. کد تمیز و همکاری تیمی
- 8. تفکر کدنویس تمیز: Mindset
- 9. پذیرش مسئولیت برای کیفیت کد
- 10. اصول DRY (Don't Repeat Yourself)
- 11. قدرت انتخاب نامهای خوب و بامعنا
- 12. نامگذاری متغیرها: قصد و مفهوم
- 13. نامگذاری توابع و متدها: چه کاری انجام میدهند؟
- 14. نامگذاری کلاسها و ماژولها: مسئولیتها
- 15. نامگذاری پکیجها و دایرکتوریها
- 16. اجتناب از ابهام و اختصارات نامفهوم
- 17. استفاده از نامهای قابل جستجو (Searchable Names)
- 18. انتخاب نام در بافت (Contextual Naming)
- 19. پرهیز از رمزگذاری اطلاعات در نامها
- 20. چگونگی نامگذاری بولینها (Booleans)
- 21. اصل تکمسئولیتی (Single Responsibility Principle) برای توابع
- 22. توابع کوچک و متمرکز: "انجام یک کار و انجام آن به خوبی"
- 23. تعداد آرگومانهای تابع: به حداقل رساندن
- 24. پرهیز از پرچمهای بولی (Boolean Flags) در پارامترها
- 25. توابع بدون اثر جانبی (Side-Effect Free Functions)
- 26. جداسازی دستورات از پرسشها (Command-Query Separation)
- 27. توابع بدون نیاز به توضیحات اضافی (Self-Documenting Functions)
- 28. توابع خالص (Pure Functions) و مزایای آنها
- 29. استفاده از توابع برای انتزاع و کاهش پیچیدگی
- 30. کنترل جریان در توابع: پرهیز از پیچیدگیهای غیرضروری
- 31. توابع با سطح انتزاع یکسان (One Level of Abstraction per Function)
- 32. انتخاب نامهای گویای توابع
- 33. پرهیز از توابع با چندین لایه تو در تو
- 34. بازگشت از توابع: وضوح و سازگاری
- 35. استفاده از Lambdas و Higher-Order Functions به شکل تمیز
- 36. اصل تکمسئولیتی (SRP) برای کلاسها
- 37. چسبندگی بالا (High Cohesion) در کلاسها
- 38. کاهش وابستگی (Low Coupling) بین کلاسها
- 39. کپسولهسازی (Encapsulation) و پنهانسازی جزئیات
- 40. اصل باز-بسته (Open/Closed Principle)
- 41. اصل جایگزینی لیسکوف (Liskov Substitution Principle)
- 42. اصل جداسازی رابطها (Interface Segregation Principle)
- 43. اصل وارونگی وابستگی (Dependency Inversion Principle)
- 44. کلاسها باید کوچک باشند: تمرکز بر یک مسئولیت
- 45. نگهداری دادهها و رفتارها کنار یکدیگر
- 46. تفاوت Data Structures و Objects: نحوه استفاده تمیز
- 47. ارزش اشیاء (Value Objects) و Entities
- 48. پرهیز از Anemic Domain Model
- 49. ساختارهای دادهای مناسب برای خوانایی کد
- 50. استفاده از DTO ها (Data Transfer Objects) به شکل تمیز
- 51. کد به جای کامنت: هدف نهایی
- 52. کامنتهای خوب: توضیح "چرا" به جای "چه"
- 53. پرهیز از کامنتهای اضافی و منسوخ
- 54. استفاده از TODO, FIXME و کامنتهای هشدار دهنده
- 55. کامنتهای مستندسازی عمومی (Docstrings/Javadoc)
- 56. فرمتبندی کد: اهمیت و تأثیر بر خوانایی
- 57. قراردادهای فرمتبندی تیمی
- 58. استفاده از Whitespace برای بهبود خوانایی
- 59. محدودیت طول خط کد
- 60. ساختاردهی کد با بلاکهای منطقی
- 61. استفاده از Exception ها به جای کد خطای بازگشتی
- 62. پرتاب Exception ها در سطح مناسب انتزاع
- 63. پرهیز از بلعیدن (Swallowing) Exception ها
- 64. نوشتن پیامهای خطای معنادار
- 65. اصل Fail-Fast: زود شکست بخورید
- 66. مدیریت خطاهای دامنه (Domain Errors)
- 67. دفاع از مرزها: اعتبار سنجی ورودیها
- 68. اهمیت تستها در حفظ پاکیزگی کد
- 69. کد قابل تست (Testable Code) چه ویژگیهایی دارد؟
- 70. نوشتن تستهای واحد تمیز (Clean Unit Tests)
- 71. اصول FIRST برای تستهای واحد (Fast, Independent, Repeatable, Self-Validating, Timely)
- 72. تستهای یکپارچهسازی (Integration Tests) و تمیزی
- 73. Test-Driven Development (TDD) به عنوان ابزاری برای کد تمیز
- 74. پوشش تست (Test Coverage) و کیفیت کد
- 75. تعریف Refactoring و زمان انجام آن
- 76. Refactoring در مقابل بازنویسی (Rewriting)
- 77. تشخیص "بوی بد کد" (Code Smells)
- 78. تکنیکهای Refactoring رایج
- 79. استفاده از ابزارهای Refactoring خودکار
- 80. Refactoring به عنوان بخشی از توسعه روزانه
- 81. استانداردهای کدنویسی تیمی و Style Guide
- 82. ابزارهای Formatters و Linters خودکار (ESLint, Prettier, Black)
- 83. بازبینی کد (Code Review) مؤثر برای تمیزی کد
- 84. Pair Programming به عنوان ابزاری برای بهبود کیفیت کد
- 85. مهاجرت به کد تمیز در پروژههای بزرگ
- 86. استراتژیهای برخورد با کد قدیمی و میراثی (Legacy Code)
- 87. مفهوم Debt Code (بدهی فنی) و مدیریت آن
- 88. Onboarding توسعهدهندگان جدید با کد تمیز
- 89. ارتباط و مستندسازی در تیمهای بزرگ
- 90. معماری سیستم و تأثیر آن بر تمیزی کد
- 91. جداسازی نگرانیها (Separation of Concerns) در مقیاس بزرگ
- 92. طراحی ماژولار و سرویسهای کوچک
- 93. زبان مشترک (Ubiquitous Language) در Domain-Driven Design
- 94. Contextهای محدود (Bounded Contexts) و مرزهای تمیز
- 95. پیادهسازی الگوهای طراحی (Design Patterns) به شکل تمیز
- 96. مدیریت وابستگیها (Dependency Management) در پروژههای بزرگ
- 97. اتوماسیون CI/CD و کنترل کیفیت کد
- 98. تعادل بین کارایی (Performance) و تمیزی کد
- 99. فرهنگ کیفیت کد در سازمان
- 100. جمعبندی: سفر مستمر به سوی کد تمیز
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.