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