اپلیکیشن اندرویدی فلشکارت آموزشی مهندسی نرمافزار با SOLID: از تئوری تا کدنویسی حرفهای
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره مهندسی نرمافزار با SOLID: از تئوری تا کدنویسی حرفهای
موضوع کلی: برنامه نویسی
موضوع میانی: اصول SOLID
📋 سرفصلهای دوره
- 1. مقدمهای بر مهندسی نرمافزار و اصول طراحی
- 2. چرا به اصول طراحی نرمافزار نیاز داریم؟
- 3. مفهوم بدهی فنی (Technical Debt) و راههای مقابله با آن
- 4. مروری سریع بر اصول برنامهنویسی شیءگرا (OOP): کپسولهسازی
- 5. مروری سریع بر اصول برنامهنویسی شیءگرا (OOP): وراثت
- 6. مروری سریع بر اصول برنامهنویسی شیءگرا (OOP): چندریختی (Polymorphism)
- 7. مروری سریع بر اصول برنامهنویسی شیءگرا (OOP): انتزاع (Abstraction)
- 8. مفاهیم کلیدی: پیوستگی (Cohesion) چیست؟
- 9. مفاهیم کلیدی: وابستگی (Coupling) چیست؟
- 10. ارتباط بین پیوستگی بالا و وابستگی پایین
- 11. معرفی اجمالی اصول SOLID و تاریخچه آن
- 12. SOLID به عنوان نقشه راه برای کدی تمیز و قابل نگهداری
- 13. نقش SOLID در کاهش پیچیدگی نرمافزار
- 14. آمادهسازی محیط کدنویسی برای تمرینهای دوره
- 15. آشنایی با پروژه نمونه: یک سیستم ناکارآمد برای ریفکتورینگ
- 16. بخش اول: اصل تک مسئولیتی (Single Responsibility Principle - SRP)**
- 17. تعریف دقیق اصل تک مسئولیتی (SRP)
- 18. "مسئولیت" واقعاً به چه معناست؟ مفهوم "Actor"
- 19. مثالهای نقض SRP: کلاس همهکاره (God Class)
- 20. بوی کد (Code Smell): ترکیب منطق کسبوکار با منطق نمایش
- 21. بوی کد: کلاسی با دلایل متعدد برای تغییر
- 22. پیادهسازی SRP: شناسایی مسئولیتهای جداگانه
- 23. تکنیک ریفکتورینگ: استخراج کلاس (Extract Class)
- 24. تکنیک ریفکتورینگ: استخراج متد (Extract Method)
- 25. کارگاه عملی: ریفکتورینگ یک کلاس کنترلر بزرگ
- 26. کارگاه عملی: جداسازی منطق اعتبارسنجی از مدل داده
- 27. SRP در سطح متدها و توابع
- 28. SRP در سطح ماژولها و کامپوننتها
- 29. مزایای SRP: افزایش خوانایی و قابلیت تست
- 30. معایب و تلههای SRP: تقسیمبندی بیش از حد (Over-engineering)
- 31. جمعبندی اصل تک مسئولیتی
- 32. بخش دوم: اصل باز/بسته (Open/Closed Principle - OCP)**
- 33. تعریف دقیق اصل باز/بسته (OCP)
- 34. مفهوم "باز برای توسعه" و "بسته برای تغییر"
- 35. نقش کلیدی انتزاع (Abstraction) در پیادهسازی OCP
- 36. مثالهای نقض OCP: استفاده از if/else و switch برای انواع مختلف
- 37. بوی کد: تغییر کد موجود برای افزودن یک قابلیت جدید
- 38. استفاده از وراثت برای پیادهسازی OCP
- 39. استفاده از اینترفیسها و ترکیب (Composition) برای پیادهسازی OCP
- 40. الگوی طراحی استراتژی (Strategy Pattern) به عنوان راهکار OCP
- 41. الگوی طراحی متد قالب (Template Method Pattern)
- 42. کارگاه عملی: ریفکتورینگ یک سیستم پردازش پرداخت با OCP
- 43. کارگاه عملی: ساخت یک سیستم گزارشگیری قابل توسعه
- 44. OCP و معماری پلاگین (Plugin Architecture)
- 45. مزایای OCP: افزایش انعطافپذیری و کاهش ریسک خطا
- 46. هزینههای پیادهسازی OCP: پیچیدگی اولیه
- 47. جمعبندی اصل باز/بسته
- 48. بخش سوم: اصل جایگزینی لیسکوف (Liskov Substitution Principle - LSP)**
- 49. تعریف دقیق اصل جایگزینی لیسکوف (LSP)
- 50. اهمیت رفتار مورد انتظار و قراردادهای ضمنی
- 51. مثال نقض کلاسیک: مشکل مربع و مستطیل
- 52. بوی کد: بررسی نوع کلاس فرزند (instanceof) در کد
- 53. بوی کد: متدهایی در کلاس فرزند که کاری انجام نمیدهند یا خطا پرتاب میکنند
- 54. قوانین LSP: تقویت پسشرطها (Postconditions)
- 55. قوانین LSP: تضعیف پیششرطها (Preconditions)
- 56. تکنیکهای ریفکتورینگ برای اصلاح نقض LSP
- 57. جایگزینی وراثت با ترکیب (Composition) برای حل مشکلات LSP
- 58. کارگاه عملی: ریفکتورینگ سلسلهمراتب کلاسهای پرندگان
- 59. کارگاه عملی: مدیریت کاربران با سطوح دسترسی مختلف بدون نقض LSP
- 60. LSP و ارتباط آن با چندریختی (Polymorphism)
- 61. تأثیر LSP بر قابلیت اطمینان سیستم
- 62. طراحی بر اساس قرارداد (Design by Contract) و ارتباط آن با LSP
- 63. جمعبندی اصل جایگزینی لیسکوف
- 64. بخش چهارم: اصل تفکیک اینترفیس (Interface Segregation Principle - ISP)**
- 65. تعریف دقیق اصل تفکیک اینترفیس (ISP)
- 66. مشکل اینترفیسهای بزرگ و سنگین (Fat Interfaces)
- 67. مثالهای نقض ISP: کلاسی که مجبور به پیادهسازی متدهای بیاستفاده است
- 68. بوی کد: پرتاب خطای NotImplementedException در متدهای اینترفیس
- 69. تکنیک ریفکتورینگ: شکستن اینترفیسهای بزرگ به اینترفیسهای کوچکتر و خاص
- 70. اینترفیسهای مبتنی بر نقش (Role-based Interfaces)
- 71. کارگاه عملی: ریفکتورینگ اینترفیس "IWorker" برای رباتها و انسانها
- 72. کارگاه عملی: طراحی اینترفیسهای یک سیستم مدیریت اسناد
- 73. ISP و تأثیر آن بر قابلیت تست و Mocking
- 74. ارتباط بین ISP و اصل تک مسئولیتی (SRP)
- 75. ISP در طراحی API و کتابخانهها
- 76. مزایای ISP: کاهش وابستگیهای ناخواسته
- 77. معماری ماژولار با استفاده از ISP
- 78. آیا تفکیک بیش از حد اینترفیسها ممکن است؟
- 79. جمعبندی اصل تفکیک اینترفیس
- 80. بخش پنجم: اصل وارونگی وابستگی (Dependency Inversion Principle - DIP)**
- 81. تعریف دقیق اصل وارونگی وابستگی (DIP)
- 82. "ماژولهای سطح بالا نباید به ماژولهای سطح پایین وابسته باشند"
- 83. نقش حیاتی انتزاع در وارونگی وابستگی
- 84. مفهوم وارونگی کنترل (Inversion of Control - IoC)
- 85. الگوی تزریق وابستگی (Dependency Injection - DI)
- 86. انواع تزریق وابستگی: Constructor, Setter, Interface Injection
- 87. مثالهای نقض DIP: استفاده مستقیم از کلمه کلیدی `new` برای ساخت وابستگیها
- 88. تکنیک ریفکتورینگ: معرفی اینترفیس برای شکستن وابستگی مستقیم
- 89. کارگاه عملی: ریفکتورینگ یک سرویس برای جدا شدن از پایگاه داده مشخص
- 90. استفاده از کانتینرهای IoC/DI (DI Containers)
- 91. اصل هالیوود: "ما با شما تماس میگیریم، شما با ما تماس نگیرید"
- 92. مزایای DIP: افزایش شدید قابلیت تستپذیری و ماژولار بودن
- 93. DIP به عنوان پایه و اساس معماری تمیز (Clean Architecture)
- 94. DIP و ایجاد مرزهای معماری (Architectural Boundaries)
- 95. جمعبندی اصل وارونگی وابستگی
- 96. بخش ششم: جمعبندی و مباحث پیشرفته**
- 97. همافزایی اصول SOLID: چگونه این اصول یکدیگر را تکمیل میکنند
- 98. مطالعه موردی جامع: ریفکتورینگ کامل یک پروژه با استفاده از تمام اصول SOLID
- 99. SOLID در مقابل اصول دیگر: DRY, KISS, YAGNI
- 100. تأثیر SOLID بر چرخه عمر توسعه نرمافزار (SDLC)
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.