دوره کدنویسی تمیز در پروژههای بزرگ و تیمی همراه با فلشکارت آموزشی — ارائه روی فلش مموری
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره کدنویسی تمیز در پروژههای بزرگ و تیمی
موضوع کلی: برنامه نویسی
موضوع میانی: کدنویسی تمیز (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. جمعبندی: سفر مستمر به سوی کد تمیز
محتویات بسته آموزشی
🌐 سامانه آنلاین فلشکارت؛ مرور هدفمند و هوشمند
اکانت ارائهشده، دسترسی به نسخه تحت وب سامانه فلشکارت ویژه این دوره را فراهم میکند. این سامانه از الگوریتم زمانبندی مرور SM-2 استفاده میکند و بر اساس ارزیابی شما از میزان یادآوری هر کارت، زمان مرورهای بعدی را تنظیم میکند.
به این ترتیب، کارتهای دشوارتر میتوانند زودتر مرور شوند و برای تثبیت مطالب در حافظه، برنامه مرور متناسبتری داشته باشید.
مدتزمان معادل آموزشی بر اساس برآورد این دوره در گواهی درج میشود.
گواهی دوزبانه با استعلام آنلاین
پس از تکمیل فعالیتهای لازم و تأیید درخواست، گواهی پایان دوره به زبان فارسی و انگلیسی صادر میشود. گواهی دارای لینک اختصاصی و QR Code برای بررسی و استعلام آنلاین است.
این گواهی صرفاً بهعنوان گواهی اتمام دوره آموزشی صادر میشود و معادل مدرک دانشگاهی، آکادمیک یا مدرک رسمی مورد تأیید نهادهای دولتی نیست. صدور آن منوط به تکمیل شرایط دوره و تأیید نهایی درخواست است.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.