کتاب صوتی از صفر تا قهرمانی: برنامهنویسی C++ مدرن با توسعهی تستمحور (TDD)
از صفر تا قهرمانی: برنامهنویسی 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
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
تگها:
C Programming
C++ مدرن
Code Better
Modern C++
Software Development
TDD
Test-Driven Development
Unit Testing
آموزش C++
برنامهنویسی C#
تست نویسی C++
توسعه تستمحور
توسعه نرمافزار
دوره C#
کدنویسی بهتر
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.