اپلیکیشن اندرویدی فلشکارت آموزشی تستپذیری کد با کمک اصول SOLID
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره تستپذیری کد با کمک اصول SOLID
موضوع کلی: برنامه نویسی
موضوع میانی: اصول SOLID
📋 سرفصلهای دوره
- 1. مقدمهای بر برنامهنویسی شیگرا (OOP)
- 2. مفاهیم پایه شیگرایی: کلاس، شی، وراثت، چندریختی
- 3. چرا اصول SOLID مهم هستند؟
- 4. مشکلات کد غیر SOLID
- 5. معرفی اصول SOLID: Single Responsibility Principle (SRP)
- 6. معرفی اصول SOLID: Open/Closed Principle (OCP)
- 7. معرفی اصول SOLID: Liskov Substitution Principle (LSP)
- 8. معرفی اصول SOLID: Interface Segregation Principle (ISP)
- 9. معرفی اصول SOLID: Dependency Inversion Principle (DIP)
- 10. تستپذیری چیست و چرا اهمیت دارد؟
- 11. انواع تست: واحد، یکپارچگی، سیستم
- 12. مزایای تستپذیری کد
- 13. مشکلات کد غیر قابل تست
- 14. مقدمهای بر Unit Testing
- 15. چارچوبهای Unit Testing (مثال: JUnit, NUnit, pytest)
- 16. نوشتن اولین تست واحد
- 17. اصول نوشتن تستهای خوب: FIRST
- 18. Single Responsibility Principle (SRP): تعریف و مفهوم
- 19. SRP: تجزیه کلاسهای بزرگ به کلاسهای کوچکتر
- 20. SRP: مثالهای عملی SRP در کد
- 21. SRP: شناسایی مسئولیتهای یک کلاس
- 22. SRP: روشهای پیادهسازی SRP
- 23. SRP: مزایا و معایب SRP
- 24. Open/Closed Principle (OCP): تعریف و مفهوم
- 25. OCP: گسترش رفتار بدون تغییر کد موجود
- 26. OCP: استفاده از Interface و Abstract Class
- 27. OCP: مثالهای عملی OCP در کد
- 28. OCP: استراتژی و تمپلیت متد پترن
- 29. OCP: مزایا و معایب OCP
- 30. Liskov Substitution Principle (LSP): تعریف و مفهوم
- 31. LSP: سازگاری زیرکلاسها با سوپرکلاسها
- 32. LSP: مثالهای نقض LSP
- 33. LSP: طراحی درست و رعایت LSP
- 34. LSP: مزایا و معایب LSP
- 35. Interface Segregation Principle (ISP): تعریف و مفهوم
- 36. ISP: اجتناب از اینترفیسهای بزرگ و حجیم
- 37. ISP: ایجاد اینترفیسهای کوچک و متمرکز
- 38. ISP: مثالهای عملی ISP در کد
- 39. ISP: مزایا و معایب ISP
- 40. Dependency Inversion Principle (DIP): تعریف و مفهوم
- 41. DIP: جداسازی وابستگیها
- 42. DIP: وابستگی به انتزاع (Abstraction) به جای وابستگی به پیادهسازی (Implementation)
- 43. DIP: Dependency Injection (DI)
- 44. DI: Constructor Injection
- 45. DI: Setter Injection
- 46. DI: Interface Injection
- 47. DI Container ها: معرفی و کاربرد
- 48. مزایای استفاده از DI Container
- 49. پیادهسازی DI Container ساده
- 50. Mocking چیست و چرا استفاده میشود؟
- 51. Mock Object ها در Unit Testing
- 52. Mocking Framework ها (مثال: Mockito, Moq, unittest.mock)
- 53. Stubbing چیست؟
- 54. تفاوت Mock و Stub
- 55. استفاده از Mock ها برای تست سناریوهای مختلف
- 56. تست کردن Exception ها
- 57. تست کردن کد با وابستگی به دیتابیس
- 58. تست کردن کد با وابستگی به سرویسهای خارجی
- 59. تست کردن کد Asynchronous
- 60. تست کردن کد Concurrent
- 61. Code Coverage چیست؟
- 62. انواع Code Coverage
- 63. استفاده از ابزارهای Code Coverage
- 64. تفسیر نتایج Code Coverage
- 65. Refactoring کد برای بهبود تستپذیری
- 66. استفاده از Design Patterns برای بهبود تستپذیری
- 67. استفاده از Inversion of Control (IoC)
- 68. تست Driven Development (TDD): چرخه Red-Green-Refactor
- 69. مزایای TDD
- 70. معایب TDD
- 71. Behavior Driven Development (BDD)
- 72. تفاوت TDD و BDD
- 73. نوشتن Test Case های قابل فهم
- 74. نامگذاری Test ها
- 75. سازماندهی Test ها
- 76. Continuous Integration (CI)
- 77. Continuous Delivery (CD)
- 78. CI/CD Pipelines
- 79. استفاده از ابزارهای CI/CD (مثال: Jenkins, GitLab CI, Azure DevOps)
- 80. تست خودکار (Automated Testing)
- 81. نوشتن Test Suite
- 82. نگهداری Test ها
- 83. به روزرسانی Test ها
- 84. حذف Test های منسوخ شده
- 85. تستهای Regression
- 86. استراتژیهای تست
- 87. انتخاب استراتژی مناسب برای پروژه
- 88. تست کردن API
- 89. تست کردن UI
- 90. تست کردن Performance
- 91. تست کردن Security
- 92. تست کردن Mobile Applications
- 93. تست کردن Embedded Systems
- 94. تست کردن Machine Learning Models
- 95. آنتیپترنهای تستنویسی
- 96. بهترین شیوههای تستنویسی
- 97. تستپذیری در معماری Microservices
- 98. تستپذیری در Cloud Environments
- 99. تستپذیری و DevOps
- 100. اندازهگیری کیفیت کد
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.