اپلیکیشن اندرویدی فلشکارت آموزشی TDD: From Theory to Practice
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره TDD: From Theory to Practice
موضوع کلی: برنامه نویسی
موضوع میانی: توسعه آزمونمحور (TDD)
📋 سرفصلهای دوره
- 1. مقدمه و مبانی توسعه آزمونمحور (TDD)
- 2. چرا به تستنویسی نیاز داریم؟ مشکلات توسعه بدون تست
- 3. TDD چیست؟ تعریف و فلسفه اصلی
- 4. تاریخچه TDD و نقش کنت بک (Kent Beck)
- 5. سه قانون TDD: سنگ بنای توسعه آزمونمحور
- 6. مزایای TDD: فراتر از یافتن باگ
- 7. افزایش کیفیت کد با TDD
- 8. نقش TDD در طراحی نرمافزار (Test-Driven Design)
- 9. افزایش اعتماد به نفس توسعهدهنده و کاهش ترس از تغییر
- 10. باورهای غلط و رایج در مورد TDD
- 11. مقایسه TDD با رویکردهای سنتی تستنویسی (Test-Last)
- 12. آشنایی با هرم تست (Testing Pyramid)
- 13. تستهای واحد (Unit Tests): هسته اصلی TDD
- 14. تستهای یکپارچهسازی (Integration Tests) و جایگاه آنها
- 15. تستهای سرتاسری (End-to-End Tests)
- 16. آمادهسازی محیط توسعه برای TDD
- 17. انتخاب و راهاندازی یک فریمورک تست
- 18. اولین چرخه TDD: از تئوری تا یک مثال ساده
- 19. چرخه Red-Green-Refactor
- 20. فاز قرمز: نوشتن یک تست شکستخورده
- 21. آناتومی یک تست خوب: ساختار و ویژگیها
- 22. چرا باید ابتدا تست شکست بخورد؟
- 23. فاز سبز: نوشتن سادهترین کد ممکن برای پاس شدن تست
- 24. استراتژی "Fake It 'Til You Make It"
- 25. اهمیت دیدن نوار سبز: تأیید صحت عملکرد تست
- 26. فاز ریفکتور (Refactor): بهبود کد بدون تغییر رفتار
- 27. ریفکتورینگ چیست و چه چیزی نیست؟
- 28. بوی کد (Code Smells) و چگونگی شناسایی آنها در فاز ریفکتور
- 29. اطمینان از پاس شدن تستها پس از ریفکتورینگ
- 30. مثال عملی کامل: ساخت یک ماشین حساب ساده با TDD
- 31. گام اول: نوشتن تست برای عملیات جمع
- 32. گام دوم: پیادهسازی و پاس کردن تست جمع
- 33. گام سوم: ریفکتور کردن کد اولیه
- 34. گام چهارم: گسترش فانکشنالیتی با تستهای جدید (تفریق، ضرب)
- 35. بدلهای تست (Test Doubles): Mock, Stub, Fake
- 36. مشکل وابستگیها (Dependencies) در تستنویسی
- 37. آشنایی با بدلهای تست (Test Doubles)
- 38. Dummy Objects: اشیاء صامت
- 39. Stubs: فراهم کردن پاسخهای از پیش تعیینشده
- 40. Spies: جاسوسی و ثبت تعاملات
- 41. Mocks: تأیید رفتار و تعاملات
- 42. Fakes: پیادهسازیهای سادهشده و کاربردی
- 43. تفاوت بین Mock و Stub: چه زمانی از کدام استفاده کنیم؟
- 44. آشنایی با فریمورکهای Mocking
- 45. مثال عملی: Stub کردن یک سرویس خارجی (API)
- 46. مثال عملی: Mock کردن یک ریپازیتوری پایگاه داده
- 47. تست مبتنی بر وضعیت (State-Based) در مقابل تست مبتنی بر رفتار (Interaction-Based)
- 48. مدرسه لندن (Mockist) در مقابل مدرسه شیکاگو (Classicist) TDD
- 49. اصول و الگوهای نوشتن تستهای باکیفیت
- 50. اصول FIRST برای تستهای واحد
- 51. (Fast) سریع
- 52. (Independent/Isolated) مستقل و ایزوله
- 53. (Repeatable) تکرارپذیر
- 54. (Self-Validating) خوداعتبارسنج
- 55. (Timely) بهموقع
- 56. الگوی Arrange-Act-Assert (AAA)
- 57. الگوی Given-When-Then (GWT)
- 58. اهمیت نامگذاری تستها: تست به عنوان مستندات زنده
- 59. چگونه موارد مرزی (Edge Cases) را تست کنیم؟
- 60. تست رفتار، نه جزئیات پیادهسازی
- 61. استفاده از متدهای Setup و Teardown
- 62. پرهیز از منطق شرطی و حلقه در تستها
- 63. قانون "یک Assert در هر تست": مزایا و معایب
- 64. نوشتن پیامهای خطای گویا و مفید در تستها
- 65. الگوی Test Data Builder برای ساخت دادههای تست پیچیده
- 66. TDD در دنیای واقعی: سناریوهای عملی
- 67. TDD برای توسعه API وب: تست کنترلرها
- 68. تست اعتبارسنجی ورودیها (Input Validation)
- 69. TDD برای لایه سرویس و منطق تجاری (Business Logic)
- 70. TDD برای لایه دسترسی به دادهها (Data Access Layer)
- 71. استفاده از پایگاه داده درون حافظهای (In-Memory Database) برای تست
- 72. TDD در توسعه فرانتاند: تست کامپوننتها
- 73. تست تعاملات کاربر (User Interactions) در فرانتاند
- 74. TDD برای مدیریت وضعیت (State Management) در فرانتاند
- 75. چالش TDD در کدهای موروثی (Legacy Code)
- 76. تستهای توصیفی (Characterization Tests) برای مهار کدهای موروثی
- 77. تکنیک Golden Master برای تست کدهای قدیمی
- 78. شکستن وابستگیها در کدهای موروثی برای تستپذیری
- 79. ریفکتورینگ امن کدهای موروثی با پوشش تست
- 80. TDD برای الگوریتمها و ساختمان دادهها
- 81. TDD برای کدهای ناهمگام (Asynchronous)
- 82. تست مدیریت خطا و Exception Handling با TDD
- 83. TDD و برنامهنویسی دونفره (Pair Programming)
- 84. سبک برنامهنویسی پینگپنگ (Ping-Pong Pairing)
- 85. مفاهیم پیشرفته و تکمیلی در TDD
- 86. توسعه رفتارمحور (BDD) و ارتباط آن با TDD
- 87. آشنایی با سینتکس Gherkin (Given/When/Then)
- 88. ابزارهای BDD مانند Cucumber و SpecFlow
- 89. پوشش تست (Test Coverage): معیارها و دامها
- 90. تفاوت بین پوشش خط، شاخه و شرط
- 91. خطر تمرکز بر روی رسیدن به پوشش ۱۰۰ درصدی
- 92. تست جهش (Mutation Testing): تست کردن تستها
- 93. آشنایی با تست مبتنی بر ویژگی (Property-Based Testing)
- 94. TDD در معماری میکروسرویس
- 95. تست قرارداد مشتریمحور (Consumer-Driven Contract Testing)
- 96. TDD برای زیرساخت به عنوان کد (Infrastructure as Code)
- 97. TDD و فرهنگ DevOps
- 98. یکپارچهسازی TDD در خط لوله CI/CD
- 99. غلبه بر مقاومت تیم در برابر پذیرش TDD
- 100. بازبینی نهایی: تأثیر بلندمدت TDD بر نگهداری و توسعهپذیری پروژه
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.