دوره قوانین طلایی کدنویسی تمیز: SOLID همراه با فلشکارت آموزشی — ارائه روی فلش مموری
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره قوانین طلایی کدنویسی تمیز: SOLID
موضوع کلی: برنامه نویسی
موضوع میانی: کدنویسی تمیز (Clean Code)
📋 سرفصلهای دوره
- 1. چرا کد تمیز مهم است؟
- 2. کد تمیز چیست؟ تعاریف و مفاهیم اولیه
- 3. هزینه کد کثیف (بدهی فنی یا Technical Debt)
- 4. ذهنیت یک برنامهنویس حرفهای: فراتر از کدنویسی صرف
- 5. نقشه راه دوره: از مبانی تا تسلط بر اصول SOLID
- 6. هنر نامگذاری: استفاده از نامهای شفاف و با مفهوم
- 7. پرهیز از نامگذاریهای گمراهکننده و اطلاعات غلط
- 8. ایجاد تمایزهای معنادار در نامگذاری
- 9. انتخاب نامهای قابل تلفظ و قابل بحث
- 10. انتخاب نامهای قابل جستجو
- 11. قوانین نامگذاری کلاسها (اسم یا عبارت اسمی)
- 12. قوانین نامگذاری متدها (فعل یا عبارت فعلی)
- 13. پرهیز از انکودینگ و پیشوندهای غیرضروری (مانند نمادگذاری مجارستانی)
- 14. یک کلمه برای یک مفهوم: ثبات در نامگذاری
- 15. نامگذاری در دامنه مسئله در مقابل دامنه راهحل
- 16. توابع باید کوچک باشند: قانون اول
- 17. توابع باید فقط یک کار انجام دهند: قانون دوم
- 18. یک سطح از انتزاع در هر تابع
- 19. قانون پایینرفتن: خواندن کد مانند یک داستان
- 20. تعداد آرگومانهای توابع (هرچه کمتر، بهتر)
- 21. توابع تکآرگومانی (Monadic) و دوآرگومانی (Dyadic)
- 22. آرگومانهای پرچمی (Flag Arguments) یک نشانه بد است
- 23. توابع بدون عوارض جانبی (Side Effects)
- 24. جداسازی دستور و پرسوجو (Command Query Separation - CQS)
- 25. ترجیح استثناها (Exceptions) به کدهای خطا
- 26. اصل DRY: خودتان را تکرار نکنید
- 27. کامنتها جبرانکننده کد بد نیستند
- 28. کد باید خود معرف و گویا باشد
- 29. انواع کامنتهای خوب: حقوقی، توضیحی، TODO
- 30. انواع کامنتهای بد: مبهم، تکراری، گمراهکننده
- 31. قالببندی عمودی: تراکم، فاصله و گروهبندی مفاهیم
- 32. قالببندی افقی: طول خطوط و تورفتگی
- 33. قوانین قالببندی تیمی و استفاده از ابزارهای خودکار (Linters)
- 34. انتزاع دادهها (Data Abstraction)
- 35. عدم تقارن داده و شیء: تفاوت ساختار داده و شیء
- 36. قانون دیمیتر (Law of Demeter): کمتر صحبت کن، بیشتر عمل کن
- 37. اشیاء انتقال داده (Data Transfer Objects - DTO)
- 38. پنهانسازی ساختار داخلی و نمایش رفتار
- 39. استفاده از استثناها به جای کدهای بازگشتی
- 40. ابتدا بلوکهای `try-catch-finally` را بنویسید
- 41. استفاده از استثناهای کنترلنشده (Unchecked Exceptions)
- 42. ارائه زمینه و اطلاعات کافی در استثناها
- 43. از بازگرداندن `null` خودداری کنید
- 44. از ارسال `null` به عنوان آرگومان بپرهیزید
- 45. مقدمهای بر اصول طراحی SOLID
- 46. معرفی اصل تک مسئولیتی (Single Responsibility Principle - SRP)
- 47. یک کلاس، یک دلیل برای تغییر
- 48. شناسایی مسئولیتها در کد
- 49. نقض SRP: کلاسهای همهکاره (God Classes) و عواقب آن
- 50. مثال عملی: تفکیک یک کلاس با چند مسئولیت
- 51. ارتباط SRP با انسجام (Cohesion)
- 52. SRP در سطح متد و ماژول
- 53. معرفی اصل باز/بسته (Open/Closed Principle - OCP)
- 54. باز برای توسعه، بسته برای تغییر
- 55. استفاده از انتزاع (Abstraction) برای دستیابی به OCP
- 56. نقض OCP: زنجیرههای `if/else` یا `switch`
- 57. مثال عملی: جایگزینی `switch` با الگوی استراتژی (Strategy Pattern)
- 58. OCP و معماری مبتنی بر پلاگین
- 59. هزینه و فایده پیادهسازی OCP در پروژهها
- 60. معرفی اصل جایگزینی لیسکوف (Liskov Substitution Principle - LSP)
- 61. هر زیرکلاس باید قابل جایگزینی با کلاس والد خود باشد
- 62. شناسایی نقض LSP: تغییر رفتار غیرمنتظره
- 63. مثال کلاسیک: مشکل وراثت مربع و مستطیل
- 64. قراردادها: پیششرطها، پسشرطها و ثابتها (Invariants)
- 65. مثال عملی: اصلاح یک سلسلهمراتب وراثت مشکلساز
- 66. LSP و اهمیت طراحی درست سلسلهمراتب کلاسها
- 67. معرفی اصل تفکیک رابطها (Interface Segregation Principle - ISP)
- 68. کلاینتها نباید مجبور به پیادهسازی متدهایی شوند که استفاده نمیکنند
- 69. خطر رابطهای بزرگ و چاق (Fat Interfaces)
- 70. نقض ISP و عواقب آن بر روی کلاینتها
- 71. مثال عملی: شکستن یک رابط بزرگ به رابطهای کوچکتر و خاصتر
- 72. ISP و نقش آن در معماری ماژولار و کاهش وابستگی
- 73. تفکیک رابطها در زبانهای بدون اینترفیس صریح
- 74. معرفی اصل وارونگی وابستگی (Dependency Inversion Principle - DIP)
- 75. ماژولهای سطح بالا نباید به ماژولهای سطح پایین وابسته باشند
- 76. هر دو باید به انتزاعها وابسته باشند
- 77. انتزاعها نباید به جزئیات وابسته باشند، بلکه جزئیات باید به انتزاعها وابسته باشند
- 78. تزریق وابستگی (Dependency Injection) به عنوان یک مکانیزم برای پیادهسازی DIP
- 79. مثال عملی: حذف وابستگی مستقیم با استفاده از اینترفیس
- 80. کنترل معکوس (Inversion of Control - IoC) و ارتباط آن با DIP
- 81. مرزهای سیستم و معماری
- 82. استفاده از کلاسهای Boundary برای جداسازی
- 83. توسعه مبتنی بر تست (TDD) و قوانین سهگانه آن
- 84. کد تمیز و قابلیت تستپذیری
- 85. بازآرایی (Refactoring) چیست و چرا اهمیت دارد؟
- 86. بازآرایی ایمن: قدمهای کوچک و تستهای پشتیبان
- 87. نشانههای کد بد (Code Smells): معرفی و شناسایی
- 88. بوی بد کد: متدهای طولانی و کلاسهای بزرگ
- 89. بوی بد کد: دادههای ابتدایی وسواسی (Primitive Obsession)
- 90. بوی بد کد: زنجیرههای `switch`
- 91. بوی بد کد: صمیمیت نامناسب (Inappropriate Intimacy)
- 92. اصل KISS: آن را ساده نگه دار (Keep It Simple, Stupid)
- 93. اصل YAGNI: به آن نیاز نخواهی داشت (You Ain't Gonna Need It)
- 94. ترکیب به جای وراثت (Composition over Inheritance)
- 95. مفاهیم وابستگی (Coupling) و انسجام (Cohesion)
- 96. اصل "بگو، نپرس" (Tell, Don't Ask)
- 97. مقدمهای بر الگوهای طراحی (Design Patterns)
- 98. ارتباط SOLID با الگوی استراتژی (Strategy Pattern)
- 99. ارتباط SOLID با الگوی کارخانه (Factory Pattern)
- 100. ارتباط SOLID با الگوی دکوراتور (Decorator Pattern)
محتویات بسته آموزشی
🌐 سامانه آنلاین فلشکارت؛ مرور هدفمند و هوشمند
اکانت ارائهشده، دسترسی به نسخه تحت وب سامانه فلشکارت ویژه این دوره را فراهم میکند. این سامانه از الگوریتم زمانبندی مرور SM-2 استفاده میکند و بر اساس ارزیابی شما از میزان یادآوری هر کارت، زمان مرورهای بعدی را تنظیم میکند.
به این ترتیب، کارتهای دشوارتر میتوانند زودتر مرور شوند و برای تثبیت مطالب در حافظه، برنامه مرور متناسبتری داشته باشید.
مدتزمان معادل آموزشی بر اساس برآورد این دوره در گواهی درج میشود.
گواهی دوزبانه با استعلام آنلاین
پس از تکمیل فعالیتهای لازم و تأیید درخواست، گواهی پایان دوره به زبان فارسی و انگلیسی صادر میشود. گواهی دارای لینک اختصاصی و QR Code برای بررسی و استعلام آنلاین است.
این گواهی صرفاً بهعنوان گواهی اتمام دوره آموزشی صادر میشود و معادل مدرک دانشگاهی، آکادمیک یا مدرک رسمی مورد تأیید نهادهای دولتی نیست. صدور آن منوط به تکمیل شرایط دوره و تأیید نهایی درخواست است.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.