دوره آموزشی برنامهنویسی تابعی در سی پلاس پلاس
4 ساعت 25 دقیقهمتوسط2025-04-01
مدرسین

Troy Miles
Award-winning Software Engineer, Speaker, and Author
جزئیات دوره
تو این دوره، اصول برنامهنویسی تابعی رو توی C++ مدرن با ویژگیهایی که تو نسخههای C++17، C++20 و C++23 معرفی شدن، بررسی میکنی. مدرس این دوره، تروی مایلز، بهت یاد میده چطور با استفاده از ویژگیهایی مثل لامبداها، رنجها، کروتینها و کانسپتها کدهایی بنویسی که مدولارتر، بیانگر و بیشتر بهینه باشن. توی این دوره، یاد میگیری چطور با استفاده از پایپلاینهای تابعی، متاپروگرمینگ و واژهنامه constexpr روش حل مشکلات توی C++ رو تغییر بدی. همچنین، مباحثی مثل برنامهنویسی واکنشی تابعی، الگوهای تطبیق و ترکیب سبکهای تابعی و دستوری رو هم پوشش میده تا بتونی تکنیکهای پیشرفته C++ رو به خوبی یاد بگیری.
🎓 اهداف یادگیری:
استفاده از ویژگیهای C++ مدرن مثل لامبداها، رنجها و کروتینها برای نوشتن کدهای تابعی کارآمدتر و بیانگرتر.
مقایسه مزایای برنامهنویسی تابعی در C++ با استفاده از راهحلهای تابعی و دستوری برای حل مشکلات رایج.
ارزیابی استفاده از کانسپتها و محدودیتهای نوع برای اطمینان از برنامهنویسی ژنریک ایمن در C++20 و C++23.
ایجاد پایپلاینهای تابعی با استفاده از کتابخانه رنجها برای تبدیل و پردازش دادهها به سرعت و بهینه.
ترکیب اصول برنامهنویسی تابعی با متاپروگرمینگ و استفاده از واژهنامه constexpr برای پیادهسازی محاسبات در زمان کامپایل و بهبود عملکرد.
🎓 اهداف یادگیری:
استفاده از ویژگیهای C++ مدرن مثل لامبداها، رنجها و کروتینها برای نوشتن کدهای تابعی کارآمدتر و بیانگرتر.
مقایسه مزایای برنامهنویسی تابعی در C++ با استفاده از راهحلهای تابعی و دستوری برای حل مشکلات رایج.
ارزیابی استفاده از کانسپتها و محدودیتهای نوع برای اطمینان از برنامهنویسی ژنریک ایمن در C++20 و C++23.
ایجاد پایپلاینهای تابعی با استفاده از کتابخانه رنجها برای تبدیل و پردازش دادهها به سرعت و بهینه.
ترکیب اصول برنامهنویسی تابعی با متاپروگرمینگ و استفاده از واژهنامه constexpr برای پیادهسازی محاسبات در زمان کامپایل و بهبود عملکرد.
مهارت ها
C++Programming FoundationsProgramming LanguagesOpen SourceSoftware DevelopmentOne-Off
سرفصل ها
0. مقدمه
- 01 - مقدمه
1. برنامه نویسی تابعی در سی پلاس پلاس مدرن
- 02 - برنامه نویسی تابعی چیست
- 03 - لامبدا و بسته شدن
- 04 - الگوریتمهای استاندارد (تبدیل، مشاهده، تجمع)
- 05 - تجمع و کاهش
- 06 - کاربرد جزئی و کاری (std - - bind)
- 07 - ترکیب توابع با الگوریتمهای استاندارد کتابخانه
- 08 - چالش - اضافه پیوسته فاکتوریل
- 09 - حل - اضافه فاکتوریل پیوسته
2. مفاهیم و محدودیتهای نوع در C++20
- 10 - چرا مفاهیم
- 11 - نحو مفهوم پایه
- 12 - تعریف مفاهیم سفارشی
- 13 - ترکیب مفاهیم
- 14 - مفاهیم در مقابل SFINAE (Pre-C++20)
- 15 - چالش - عملکرد محدود به مفاهیم
- 16 - راه حل - تابع محدود شده توسط مفاهیم
3. Ranges and Pipelines در C++20 23
- 17 - محدودهها و خطوط لوله در C++20 23
- 18 - چرا از محدودهها استفادهکنیم (تبدیل یک مجموعه)
- 19 - ترکیب فیلترها و تبدیل ها
- 20 - ارزیابی تنبل با کوروتینها (ژنراتور فیبوناچی بی نهایت)
- 21 - ترکیب عملیات چند دامنه برای تبدیل مجموعه ها
- 22 - چالش - یک خط لوله کاربردی بسازید
- 23 - راه حل - ساخت یک خط لوله کاربردی
4. فرابرنامه نویسی قالب و constexpr
- 24 - فرابرنامه نویسی قالب و constexpr
- 25 - قالبهای بازگشتی در C++
- 26 - فاکتوریل با استفاده از constexpr
- 27 - محاسبه زمان کامپایل پیشرفته - دنباله فیبوناچی
- 28 - چرا ضرب ماتریس زمان کامپایل؟
- 29 - چالش - اجرای فاکتوریل constexpr
- 30 - راه حل - فاکتوریل constexpr را اجرا کنید
5. توابع و ترکیبات مرتبه بالاتر در C++23
- 31 - مقدمه ای بر توابع درجه بالاتر
- 32 - استفاده از std - - تابع move only برای توابع مرتبه بالاتر
- 33 - ترکیب تابع با lambdas و std - - invoke
- 34 - مزایای نوشتن توابع برای کدهای ماژولارتر
- 35 - موارد استفاده در دنیای واقعی از توابع درجه بالاتر در ++C مدرن
- 36 - چالش - خط لوله ترکیب تابع
- 37 - راه حل - خط لوله ترکیب تابع
6. کتابخانههای برنامه نویسی کاربردی
- 38 - استفاده از الگوریتمهای تابعی با استفاده از STL
- 39 - تبدیل و جمع بندی فهرست
- 40 - فیلتر کردن مقادیر با std - - محدوده - - فیلتر (C++20)
- 41 - دستکاری تاپل با Boost.Hana
- 42 - ترکیب Boost.Hana با تکنیکهای تابعی استاندارد در C++
- 43 - چالش - فیلتر و تبدیل با STL و Boost.Hana
- 44 - راه حل - فیلتر و تبدیل با STL و Boost.Hana
7. برنامه نویسی واکنشی تابعی
- 45 - برنامه ریزی واکنشی تابعی
- 46 - جریان RxCpp ساده
- 47 - Coroutine با RxCpp و محدوده
- 48 - پردازش جریان داده در زمان واقعی به روشی کاربردی
- 49 - مزایای برنامه نویسی کاربردی برای مدیریت رویدادهای ناهمزمان
- 50 - چالش - فرکانس شمار ورد با RxCpp
- 51 - راه حل - فرکانس شمار ورد با RxCpp
8. تطبیق و انواع الگوها در C++23
- 52 - مقدمه ای بر تطبیق الگو و ریشههای برنامه نویسی کاربردی آن
- 53 - تطبیق الگوی پایه با متغیر std - -
- 54 - سربارهای نوع خاص با std - - بازدید
- 55 - بهبود وضوح کد با تکنیکهای تطبیق الگو
- 56 - کاربردهای std - - variant و std - - بازدید در سناریوهای دنیای واقعی
- 57 - چالش - تطبیق الگو با std - - variant
- 58 - راه حل - تطبیق الگو با std - - variant
9. کوروتینهای پیشرفته و برنامه نویسی ناهمزمان
- 59 - کوروتینهای پیشرفته و برنامه نویسی ناهمزمان
- 60 - مولد توالی تنبل با هم بازده
- 61 - مدیریت وظایف ناهمزمان با کوروتین ها
- 62 - ترکیب کوروتینها با ارزیابی تنبل برای اجرای کارآمد
- 63 - انجام وظایف همزمان به صورت عملکردی
- 64 - چالش - مدیر وظیفه ناهمزمان
- 65 - راه حل - مدیر وظایف ناهمزمان
10. ترکیب سبکهای کاربردی و امری
- 66 - ترکیب سبکهای کاربردی و امری
- 67 - خطوط لوله عملکردی با حلقههای ضروری
- 68 - شبیه سازی دادههای تغییرناپذیر با std - - shared ptr
- 69 - تبدیل کد دستوری به یک سبک عملکردی برای وضوح
- 70 - ایجاد تعادل در عملکرد و قابلیت نگهداری با استفاده از سبکهای برنامه نویسی ترکیبی
- 71 - چالش - کد امری را به یک سبک عملکردی تبدیل کنید
- 72 - راه حل - کد امری را به یک سبک عملکردی تبدیل کنید
دوره های مرتبط
- دوره آموزشی کدنویسی امن درسی پلاس پلاس
- دوره آموزشی سی پلاس پلاس پیشرفته: ساخت پروژهها با استفاده از CMake
- دوره آموزشی برنامهنویسی شیگرا با سی پلاس پلاس
- دوره آموزشی راهنمای کامل برنامهنویسی موازی و همزمان با سی پلاس پلاس
- دوره آموزشی راهنمای کامل مبانی برنامهنویسی ++C
- دوره آموزشی ++C مدرن: تکنیکها و ویژگیهای پیشرفته
- دوره آموزشی مدیریت استثناها در سی پلاس پلاس (++C)
- دوره آموزشی سی پلاس پلاس مدرن: لامبدا