Чему вы научитесь
- Писать чистые функции и проектировать код с минимальным количеством побочных эффектов.
- Использовать лямбда-выражения, функции высшего порядка и стандартные алгоритмы STL вместо ручных циклов.
- Строить выразительные пайплайны обработки данных с помощью std::ranges и композиции функций.
- Реализовывать безопасную обработку ошибок через std::optional и std::expected без злоупотребления исключениями.
- Осознанно комбинировать функциональный и императивный стили в C++, понимая границы и уместность FP-подхода.
О курсе
Этот курс — практическое погружение в функциональный стиль программирования в современном C++. Мы не будем изучать абстрактное "академическое FP" и не будем переписывать язык под чужую парадигму. Вместо этого разберём, как применять функциональные идеи там, где они действительно усиливают код: делают его чище, безопаснее и легче для тестирования.
Курс построен последовательно. Сначала вы разберётесь с фундаментом: что такое чистые функции, почему побочные эффекты усложняют систему и как мыслить через преобразование данных, а не через изменение состояния. Затем перейдём к лямбда-выражениям, функциям высшего порядка и работе со стандартными алгоритмами STL вместо ручных циклов.
Отдельный блок посвящён неизменяемости и тому, как её применять в C++ без потери производительности. Мы разберём std::ranges и ленивые вычисления, научимся строить читаемые пайплайны обработки данных и использовать композицию функций. В разделе про обработку ошибок вы увидите, как применять std::optional и std::expected для более явной и безопасной логики.
В финале вы закрепите материал на практических задачах и рефакторинге кода. В результате вы научитесь осознанно комбинировать функциональный и императивный подходы, понимая их границы и сильные стороны.
Для кого этот курс
Начальные требования
Понимание базового синтаксиса(функции, классы, ссылки, константы и шаблоны на базовом уровне), знание STL, базовые знания ООП и основных семантик.
Наши преподаватели
Как проходит обучение
Для каждой темы дана теория и вопросы, в конце раздела Вам ждут задачи для отработки пройденного материала. В конце курса Вас ждут контрольные задачи и задачи на рефакторинг уже имеющегося кода.