Инструменты для эффективной разработки на C++

Дмитрий Кожевников, Анастасия Казакова, Андрей Давыдов

Дмитрий Кожевников

Дмитрий Кожевников работает в JetBrains и занимается поддержкой языковых возможностей C++ в IDE CLion.

В прошлом занимался промышленным программированием на современном C++ в областях, связанных с искусственным интеллектом, тренажерами и системами 3D-визуализации.

Анастасия Казакова

Анастасия Казакова программирует на C и C++ со времен университета. В прошлом занималась коммерческой разработкой систем реального времени и встроенных систем, а также исследовательскими задачами в области сетевого трафика.

Анастасия уверена в том, что разработка – процесс творческий, а рутинные задачи должны быть переданы “умным” инструментам. Поэтому сейчас она является частью команды JetBrains и работает менеджером по продуктовому маркетингу продукта CLion.

Андрей Давыдов

Андрей Давыдов работает в команде ReSharper C++ в JetBrains.

В прошлом занимался промышленным программированием на современном C++ в областях, связанных с ГИС-ами, тренажерами и системами 3D-визуализации.


Инструменты для эффективной разработки на C++

Чего ожидать

Язык C++ не прост в обучении и использовании, а прорывная эволюция недавних стандартов (так называемый современный C++) хоть и решила множество проблем, но при этом существенно повысила уровень сложности языка. Создавать качественный код на C++ быстро и эффективно – это определенное искусство. К счастью, есть инструменты, которые помогают нам в этом. Разработкой именно таких инструментов занимается компания JetBrains.

Данная серия мастер-классов направлена на то, чтобы научить вас повышать эффективность и качество разработки на C++ с помощью CLion и ReSharper C++. Мы также хотим предоставить вам возможность познакомиться с одной из наиболее популярных сегодня систем сборки проектов – CMake.

Помимо прочего, у вас будет время и возможность задать любые вопросы по нашим продуктам членам команд CLion и ReSharper C++, даже если они не связаны напрямую с материалами мастер-класса.

Часть 1: Продуктивная кроссплатформенная разработка на C++ с использованием CLion

Кроссплатформенная разработка на C и C++ отличается разнообразием вовлеченных инструментов и библиотек, широким спектром используемых стандартов языка и обилием легаси-кода.

CLion – кроссплатформенная интегрированная среда для разработки на C и C++. В рамкам данного мастер-класса мы разберем базовые сценарии работы с кодом на C++ и посмотрим, как CLion помогает нам проходить по ним быстрее и эффективнее, разберем множество типичных для C++ проблем и способы их решения с помощью CLion.

В результате вы научитесь:

  • быстро разбираться в новом коде, основываясь на дополнительной информации, предоставляемой CLion и полученной на основе анализа кода – ресурсоемкая и непростая задача, если решать ее вручную (типичным примером может быть вывод типов или понимание кода, широко использующего overload resolution)
  • использовать мощные возможности платформы IntelliJ для работы с кодом, в том числе интеграцию с VCS, встроенный терминал и плагины для множества других языков, кроме C++
  • находить ошибки и исправлять их прямо на лету (без компиляции проекта), включая сложные сценарии, связанные с потоком данных в вашей программе
  • рефакторить код на C++, при этом не “разломав” его
  • эффективно отлаживать код
  • и даже генерировать множество стандартного кода в одно нажатие клавиш на клавиатуре (тем самым уберегая себя от ошибок копирования и разнящихся стилей кодирования)

Часть 2: CMake – билд-система, о которой должен знать каждый С++ разработчик

Вы, наверное, слышали, что CMake постепенно становится стандартом де-факто в мире C++, многие проекты (например, LLVM) мигрируют на нее. А может, даже пытались перевести ваш проект на CMake или, по-крайней мере, задумывались о такой возможности? Тогда это часть для вас!

В рамках данного мастер-класса мы попытаемся объяснить, почему CMake – это не совсем система сборки в привычном нам понимании, обрисовать основные сценарии использования CMake и подробно поговорить про ключевые понятия, команды и подходы. Кроме того, мы уделим внимание тому, как CLion использует информацию из файлов CMake и как он может облегчить их написание.

В результате вы научитесь:

  • понимать, какие возможности предоставляет вам CMake
  • создавать базовые CMake-проекты
  • использовать сторонние библиотеки в ваших CMake-проектах
  • понимать и работать с основными командами и конструкциями языка CMake
  • использовать “best practices” и избегать антипаттернов CMake
  • использовать возможности CLion для облегчения написания файлов CMake

Часть 3: Продуктивная разработка на C++ с использованием ReSharper C++

ReSharper C++ – расширение Visual Studio для разработки на C и C++. В рамках данного мастер-класса мы разберем распространенные сценарии работы с кодом на C++ и посмотрим, чем может быть полезным в них ReSharper C++. Увидим, как ReSharper C++ находит и помогает исправить некоторые типичные для C++ проблемы.

В результате вы научитесь:

  • быстро разбираться в новом коде. Вот некоторые возможности ReSharper C++ помогающие в решении этой задачи:
    • навигация, включая нетривиальные случаи перегруженных функций и специализированных шаблонов
    • разнообразные поиски (по имени символа, по переопределенным методам, поиск по базовым классам, …)
    • всплывающие подсказки с документацией для символов
    • Type Hierarchy, Include Hierarchy, File Structure
  • находить ошибки и подозрительные места в коде и исправлять их прямо на лету
  • отлаживать сложные compile-time ошибки при раскрытии макросов и шаблонном метапрограммировании
  • создавать и запускать unit-тесты
  • рефакторить код на C++, при этом не “разломав” его
  • и даже генерировать множество стандартного кода в одно нажатие клавиш на клавиатуре

Кроме того, в мастер-классе будут даны рекомендации по оптимизации производительности ReSharper.

Значительная часть функциональности, о которой будет рассказано, не является специфичной для C++, поэтому доступна и для других языков, поддерживаемых ReSharper’ом.

Системные требования

Для участия в мастер-классах по CLion и CMake вам понадобится

  • Компьютер (ноутбук) с MacOS, Linux (64-bit) или Windows (64-bit). Полные системные требования смотрите по ссылке
  • Предустановленные инструменты (полный список поддерживаемых версий по ссылке):
    • GCC/G++ или Clang, в случае Windows – установленные MinGW или Cygwin
    • Make
    • CLion 2016.3 (для использования продукта во время мастер-класса и некоторое время после него, после регистрации, вы сможете получить бесплатную лицензию, ограниченную по времени использования)
  • Проект CLion
  • Проект CMake
  • Qt5

Для участия в мастер-классе по ReSharper C++ вам понадобится

  • Компьютер (ноутбук) с Windows. Полные системные требования смотрите по ссылке
  • Visual Studio 2015
  • ReSharper 2016.3 (для использования продукта во время мастер-класса и некоторое время после него, после регистрации, вы сможете получить бесплатную лицензию, ограниченную по времени использования)
  • Boost версии не ниже 1.61
  • Проект ReSharper C++

Gold спонсоры

Silver спонсоры

Community спонсоры