دوره آموزشی برنامه‌نویسی تابعی در سی پلاس پلاس

دوره آموزشی برنامه‌نویسی تابعی در سی پلاس پلاس

4 ساعت 25 دقیقهمتوسط2025-04-01

مدرسین

Troy Miles

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++Programming FoundationsProgramming LanguagesOpen SourceSoftware DevelopmentOne-Off

سرفصل ها

مقدمه

  • مقدمه

برنامه نویسی تابعی در سی پلاس پلاس مدرن

  • برنامه نویسی تابعی چیست
  • لامبدا و بسته شدن
  • الگوریتم‌های استاندارد (تبدیل، مشاهده، تجمع)
  • تجمع و کاهش
  • کاربرد جزئی و کاری (std - - bind)
  • ترکیب توابع با الگوریتم‌های استاندارد کتابخانه
  • چالش - اضافه پیوسته فاکتوریل
  • حل - اضافه فاکتوریل پیوسته

مفاهیم و محدودیت‌های نوع در C++20

  • چرا مفاهیم
  • نحو مفهوم پایه
  • تعریف مفاهیم سفارشی
  • ترکیب مفاهیم
  • مفاهیم در مقابل SFINAE (Pre-C++20)
  • چالش - عملکرد محدود به مفاهیم
  • راه حل - تابع محدود شده توسط مفاهیم

Ranges and Pipelines در C++20 23

  • محدوده‌ها و خطوط لوله در C++20 23
  • چرا از محدوده‌ها استفاده‌کنیم (تبدیل یک مجموعه)
  • ترکیب فیلترها و تبدیل ها
  • ارزیابی تنبل با کوروتین‌ها (ژنراتور فیبوناچی بی نهایت)
  • ترکیب عملیات چند دامنه برای تبدیل مجموعه ها
  • چالش - یک خط لوله کاربردی بسازید
  • راه حل - ساخت یک خط لوله کاربردی

فرابرنامه نویسی قالب و constexpr

  • فرابرنامه نویسی قالب و constexpr
  • قالب‌های بازگشتی در C++
  • فاکتوریل با استفاده از constexpr
  • محاسبه زمان کامپایل پیشرفته - دنباله فیبوناچی
  • چرا ضرب ماتریس زمان کامپایل؟
  • چالش - اجرای فاکتوریل constexpr
  • راه حل - فاکتوریل constexpr را اجرا کنید

توابع و ترکیبات مرتبه بالاتر در C++23

  • مقدمه ای بر توابع درجه بالاتر
  • استفاده از std - - تابع move only برای توابع مرتبه بالاتر
  • ترکیب تابع با lambdas و std - - invoke
  • مزایای نوشتن توابع برای کدهای ماژولارتر
  • موارد استفاده در دنیای واقعی از توابع درجه بالاتر در ++C مدرن
  • چالش - خط لوله ترکیب تابع
  • راه حل - خط لوله ترکیب تابع

کتابخانه‌های برنامه نویسی کاربردی

  • استفاده از الگوریتم‌های تابعی با استفاده از STL
  • تبدیل و جمع بندی فهرست
  • فیلتر کردن مقادیر با std - - محدوده - - فیلتر (C++20)
  • دستکاری تاپل با Boost.Hana
  • ترکیب Boost.Hana با تکنیک‌های تابعی استاندارد در C++
  • چالش - فیلتر و تبدیل با STL و Boost.Hana
  • راه حل - فیلتر و تبدیل با STL و Boost.Hana

برنامه نویسی واکنشی تابعی

  • برنامه ریزی واکنشی تابعی
  • جریان RxCpp ساده
  • Coroutine با RxCpp و محدوده
  • پردازش جریان داده در زمان واقعی به روشی کاربردی
  • مزایای برنامه نویسی کاربردی برای مدیریت رویدادهای ناهمزمان
  • چالش - فرکانس شمار ورد با RxCpp
  • راه حل - فرکانس شمار ورد با RxCpp

تطبیق و انواع الگوها در C++23

  • مقدمه ای بر تطبیق الگو و ریشه‌های برنامه نویسی کاربردی آن
  • تطبیق الگوی پایه با متغیر std - -
  • سربارهای نوع خاص با std - - بازدید
  • بهبود وضوح کد با تکنیک‌های تطبیق الگو
  • کاربردهای std - - variant و std - - بازدید در سناریوهای دنیای واقعی
  • چالش - تطبیق الگو با std - - variant
  • راه حل - تطبیق الگو با std - - variant

کوروتین‌های پیشرفته و برنامه نویسی ناهمزمان

  • کوروتین‌های پیشرفته و برنامه نویسی ناهمزمان
  • مولد توالی تنبل با هم بازده
  • مدیریت وظایف ناهمزمان با کوروتین ها
  • ترکیب کوروتین‌ها با ارزیابی تنبل برای اجرای کارآمد
  • انجام وظایف همزمان به صورت عملکردی
  • چالش - مدیر وظیفه ناهمزمان
  • راه حل - مدیر وظایف ناهمزمان

ترکیب سبک‌های کاربردی و امری

  • ترکیب سبک‌های کاربردی و امری
  • خطوط لوله عملکردی با حلقه‌های ضروری
  • شبیه سازی داده‌های تغییرناپذیر با std - - shared ptr
  • تبدیل کد دستوری به یک سبک عملکردی برای وضوح
  • ایجاد تعادل در عملکرد و قابلیت نگهداری با استفاده از سبک‌های برنامه نویسی ترکیبی
  • چالش - کد امری را به یک سبک عملکردی تبدیل کنید
  • راه حل - کد امری را به یک سبک عملکردی تبدیل کنید
۱۰۰,۰۰۰ تومان