اپلیکیشن اندرویدی فلشکارت آموزشی از صفر تا قهرمانی: برنامهنویسی C++ مدرن با توسعهی تستمحور (TDD)
📚 کتاب آموزشی جامع
📚 اطلاعات کتاب
عنوان کتاب: کتاب از صفر تا قهرمانی: برنامهنویسی C++ مدرن با توسعهی تستمحور (TDD)
موضوع کلی: برنامهنویسی C++ مدرن
موضوع میانی: توسعهی تستمحور (TDD) در C++
📋 سرفصلهای کتاب (100 موضوع)
- 1. مقدمهای بر برنامهنویسی C++ مدرن
- 2. چرا توسعهی تستمحور (TDD)؟ مزایا و فلسفه
- 3. آشنایی با چرخهی Red-Green-Refactor
- 4. نصب و راهاندازی محیط توسعه (کامپایلر، IDE، Catch2)
- 5. آشنایی با سیستم ساخت CMake برای پروژههای TDD
- 6. معرفی Catch2: فریمورک تستنویسی مدرن برای C++
- 7. اولین تست با Catch2: نوشتن یک تست ساده
- 8. مفاهیم اولیه C++: متغیرها، انواع داده و عملگرها
- 9. کنترل جریان: حلقهها و شرطها
- 10. توابع: تعریف، فراخوانی و Overloading
- 11. کلاسها و اشیاء: مبانی برنامهنویسی شیءگرا
- 12. سازندهها (Constructors) و مخربها (Destructors)
- 13. اعمال TDD بر روی یک تابع ساده
- 14. اعمال TDD بر روی یک کلاس کوچک
- 15. اصول تستنویسی خوب: سریع، مستقل، قابل تکرار
- 16. استفاده از `REQUIRE` و `CHECK` در Catch2
- 17. گروهبندی تستها با `TEST_CASE` و تگها
- 18. مفهوم Failure و Success در TDD
- 19. Refactor: چرا و چگونه؟
- 20. Refactoring اولیه: حذف کد تکراری
- 21. اشارهگرها (Pointers) و ارجاعها (References)
- 22. مدیریت حافظه دستی: `new` و `delete` (و خطرات آن)
- 23. Smart Pointers: معرفی `std::unique_ptr`
- 24. اعمال TDD بر روی کد با `std::unique_ptr`
- 25. Smart Pointers: `std::shared_ptr` و شمارش ارجاع
- 26. اعمال TDD بر روی کد با `std::shared_ptr`
- 27. استفاده از `std::weak_ptr` برای جلوگیری از چرخههای ارجاع
- 28. Lambdas: معرفی و کاربردها در C++11
- 29. اعمال TDD بر روی توابع Lambda
- 30. Range-based for loops: نوشتن کدی خواناتر
- 31. `auto` keyword: کاهش تایپ و افزایش خوانایی
- 32. `decltype`: استخراج نوع یک عبارت
- 33. Move Semantics: rvalue references و `std::move`
- 34. سازندهها و عملگرهای انتقال (Move Constructors/Assignment)
- 35. اعمال TDD بر روی کلاسهایی با Move Semantics
- 36. Containerها در STL: `std::vector`
- 37. اعمال TDD بر روی کلاسهایی که از `std::vector` استفاده میکنند
- 38. `std::string` و TDD
- 39. `std::array` و `std::span` (C++20)
- 40. Containerها در STL: `std::list` و `std::deque`
- 41. Containerهای Associative: `std::map` و `std::set`
- 42. اعمال TDD بر روی کد با `std::map`
- 43. Containerهای Unordered: `std::unordered_map` و `std::unordered_set`
- 44. اعمال TDD بر روی کد با `std::unordered_map`
- 45. Iterators: مفهوم و کاربردها
- 46. Algorithms در STL: `std::sort` و `std::find`
- 47. اعمال TDD بر روی کد با Algorithms
- 48. Generic Programming با TDD: مبانی Templates
- 49. Template Functions و TDD
- 50. Template Classes و TDD
- 51. Test Doubles: چرا به آنها نیاز داریم؟
- 52. Test Stubs: جایگزینهای ساده برای وابستگیها
- 53. Test Mocks: بررسی رفتار در TDD
- 54. پیادهسازی یک Mock ساده با Catch2
- 55. مروری بر فریمورکهای Mocking پیشرفته (برای اشاره به ابزارهای دیگر)
- 56. Test Fakes: پیادهسازیهای سبک برای وابستگیهای پیچیده
- 57. Test Spies: مشاهده و گزارش فراخوانیها
- 58. Refactoring پیشرفته: Patternهای Refactoring
- 59. Extract Method و Extract Class در TDD
- 60. Rename Variable/Method و Move Method/Field
- 61. Introduce Parameter Object
- 62. Replace Conditional with Polymorphism
- 63. Dealing with Legacy Code: Characterization Tests
- 64. Dealing with Legacy Code: The Strangler Fig Pattern
- 65. Dependency Injection: اصول و کاربردها
- 66. اعمال TDD بر روی کدهای با Dependency Injection
- 67. Strategy Pattern با TDD
- 68. Observer Pattern با TDD
- 69. Factory Pattern با TDD
- 70. Builder Pattern با TDD
- 71. Error Handling: Exceptionها در C++
- 72. اعمال TDD بر روی Exception Handling
- 73. `std::optional`: مدیریت مقادیر عدم حضور
- 74. اعمال TDD بر روی کد با `std::optional`
- 75. `std::variant`: مدیریت انواع مختلف
- 76. اعمال TDD بر روی کد با `std::variant`
- 77. `std::expected` (C++23): مدیریت خطاها و مقادیر
- 78. Concurrency: معرفی `std::thread`
- 79. اعمال TDD بر روی کدهای چندنخی (Multi-threading)
- 80. Mutexes و Locks برای همگامسازی
- 81. `std::async` و `std::future`: موازیسازی وظایف
- 82. Testing Asynchronous Code
- 83. Performance Testing با TDD: مفاهیم اولیه
- 84. بنچمارکنویسی با Catch2
- 85. بهینهسازی کد بر اساس تستهای عملکرد
- 86. Integration Tests vs. Unit Tests در TDD
- 87. End-to-End Tests و جایگاه آنها
- 88. CMake پیشرفته: مدیریت وابستگیها با FetchContent
- 89. ساخت Continuous Integration (CI) Pipeline برای TDD
- 90. گزارشگیری پوشش کد (Code Coverage) در TDD
- 91. TDD در پروژههای بزرگ: چالشها و راهحلها
- 92. Mocking زمان (Time) در TDD
- 93. Testing File System Operations
- 94. Testing Network Operations (با Test Doubles)
- 95. Concepts (C++20): افزایش ایمنی و خوانایی Templateها
- 96. اعمال TDD بر روی کدهای با Concepts
- 97. Modules (C++20): سازماندهی کد (مقدماتی)
- 98. Beyond TDD: Behavior-Driven Development (BDD) مقدماتی
- 99. مروری بر اصول SOLID در طراحی با TDD
- 100. جمعبندی: سفر قهرمانی در C++ مدرن با TDD
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.