کتاب از صفر تا قهرمانی: برنامهنویسی C++ مدرن با توسعهی تستمحور (TDD) با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
از صفر تا قهرمانی: برنامهنویسی C++ مدرن با توسعهی تستمحور (TDD) از صفر تا قهرمانی: برنامهنویسی C++ مدرن با توسعهی تستمحور (TDD) معرفی دوره: دروازهای به سوی دنیای C++ مدرن و حرفهای آیا به دنبال...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره از صفر تا قهرمانی: برنامهنویسی C++ مدرن با توسعهی تستمحور (TDD)
موضوع کلی: برنامهنویسی C++ مدرن
موضوع میانی: توسعهی تستمحور (TDD) در C++
📋 سرفصلهای دوره
- 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
تگها:
C Programming
C++ مدرن
Code Better
Modern C++
Software Development
TDD
Test-Driven Development
Unit Testing
آموزش C++
برنامهنویسی C#
تست نویسی C++
توسعه تستمحور
توسعه نرمافزار
دوره C#
کدنویسی بهتر
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.