mirror of
https://github.com/salmer/CppDeveloperRoadmap.git
synced 2025-12-17 12:34:37 +03:00
122 lines
11 KiB
Markdown
122 lines
11 KiB
Markdown
# Инструментарий для работы с языком
|
||
|
||
Начинающие разработчики имеют малый кругозор по доступному инструментарию, который облегчает работу с кодом, а также повышает эффективность и оберегает от многих ошибок. Все эти инструменты не серебряная пуля от многих бед языка, но они значительно сглаживают имеющиеся углы. Ниже представлен список распространенных и популярных инструментов, признанных разработчиками по всему миру. Данный список - лишь малая часть доступного инструментария. Со временем вы начнете лучше ориентироваться в них и найдете для себя что-то новое.
|
||
|
||
## IDE (Integrated Development Environment)
|
||
|
||
* **Microsoft Visual Studio IDE**
|
||
|
||
Сайт: https://visualstudio.microsoft.com
|
||
|
||
Стоимость: Community Edition - бесплатно
|
||
|
||
Интегрированная среда разработки от компании Microsoft. Предоставляет весь необходимый набор инструментов (редактор кода, компилятор, отладчик, профилировщик и т.д.) из коробки. Поддерживает разработку на различных языках программирования, а также кроссплатформенную разработку. Отличное начало для новичков, т.к. современный интерфейс студии максимально дружелюбен, и практически не требует какой-либо "доработки напильником" из коробки.
|
||
|
||
|
||
* **Qt Creator IDE**
|
||
|
||
Сайт: https://www.qt.io/product/development-tools
|
||
|
||
Стоимость: бесплатно в open source проектах (более подробно: [Qt Open Source](https://www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5))
|
||
|
||
Изначально Qt Creator позиционировался как IDE для разработки графических интерфейсов приложений, разрабатываемых на языке C++. Но со временем фреймворк оброс огромными возможностями. В итоге фреймворк перерос в полноценную экосистему для разработки кроссплатформенных приложений. Он предоставляет большую библиотеку примитивов для различных потребностей: работа с сетью, графический интерфейс, работа с базами данных, работа с популярными форматами: изображения, текстовые файлы и т.д. Современный Qt Creator выступает в роли конкурента для Visual Studio, но в основном он снискал славу в среде разработчиков, которые разрабатывают приложения под различные дистрибутивы Linux.
|
||
|
||
|
||
* **Eclipse IDE**
|
||
|
||
Сайт: https://www.eclipse.org/downloads/packages
|
||
|
||
Стоимость: бесплатно
|
||
|
||
Довольно мощная мультиплатформенная среда разработки, но при этом тяжеловесная. Ключевая особенность Eclipse - модульность. Философия Eclipse состоит в том, что любой разработчик может доработать среду разработки под себя посредством подключения дополнительных расширений. Взята за основу некоторыми разработчиками компиляторов под специализированные ОС или микроконтроллеры (например: ОС реального времени QNX).
|
||
|
||
|
||
* **JetBrains Clion IDE**
|
||
|
||
Сайт: https://www.jetbrains.com/clion
|
||
|
||
Стоимость: бесплатная для учебных заведений, в ином случае - платная
|
||
|
||
Мощная мультиплатформенная IDE от российской компании JetBrains. Как и другие IDE, она содержит полный набор инструментов для комфортной разработки программного обеспечения. Удобен для кроссплатформенной разработки как на Cи, так и на C++.
|
||
|
||
|
||
## Расширения
|
||
|
||
* **JetBrains ReSharper C++**
|
||
|
||
Сайт: https://www.jetbrains.com/resharper-cpp
|
||
|
||
Стоимость: бесплатная для учебных заведений, в ином случае - платная
|
||
|
||
Расширение для MS Visual Studio. Добавляет дополнительные возможности для работы с исходным кодом: расширенная подсветка кода и подсказки по нему, построение диаграмм зависимостей между проектами, рекомендации по типовым ошибкам в коде и по его улучшению, расширенная информация во время отладки, продвинутый поиск, навигация по проектам и т.д. Является конкурентом Visual Assist.
|
||
|
||
* **Visual Assist**
|
||
|
||
Сайт: https://www.wholetomato.com
|
||
|
||
Расширение для MS Visual Studio. Добавляет дополнительные возможности для работы с исходным кодом: расширенная подсветка кода и подсказки по нему, расширенная информация во время отладки или при написании кода, продвинутый поиск, навигация по проектам и т.д. Является конкурентом JetBrains ReSharper.
|
||
|
||
|
||
* **Incredibuild**
|
||
|
||
Сайт: https://www.incredibuild.com
|
||
|
||
Стоимость: платно, актуальная цена указана на сайте
|
||
|
||
Приложение/расширение для распределенной сборки проектов. Объединяет все рабочие станции разработчиков в единую сеть, за счет чего сборка исходного кода может производиться одновременно на десятках машин. Это позволяет ускорить скорость сборки больших проектов в несколько раз.
|
||
|
||
|
||
## Пакетные менеджеры и системы сборки
|
||
|
||
* **Cmake**
|
||
|
||
Сайт: https://cmake.org
|
||
|
||
Кроссплатформенная система автоматизации сборки приложения из исходного кода. Генерирует необходимые артефакты для последующей сборки приложения на целевой платформе. На текущий момент считается "стандартным" инструментом для сборки различных библиотек, в случае поставки в качестве исходного кода.
|
||
|
||
* **Conan**
|
||
|
||
Сайт: https://conan.io
|
||
|
||
Стоимость: бесплатно
|
||
|
||
Пакетный менеджер, а также менеджер зависимостей для организации C++ библиотек и фреймворков. Поддерживает работу с различными платформами: Windows, Linux, etc. Поддерживает интеграцию с CMake, Visual Studio и т.д.
|
||
|
||
|
||
* **Ninja**
|
||
|
||
Сайт: https://ninja-build.org
|
||
|
||
Стоимость: бесплатно
|
||
|
||
Менеджер сборки проектов для приложений, написанных на Си и C++. Основное преимуществ о котором заявляет данный менеджер: быстрая сборка проектов. Поддерживает кроссплатформенную разработку, поддерживает все популярные компиляторы.
|
||
|
||
|
||
## Анализаторы кода
|
||
|
||
* **PVS Studio**
|
||
|
||
Сайт: https://pvs-studio.com
|
||
|
||
Стоимость: триал на 30 дней, далее платно
|
||
|
||
Кроссплатформенный (Windows, Linux, MacOS) статический анализатор кода от российской компании PVS-Studio. Основная задача анализатора - провести анализ исходников на предмет различных ошибок, которые не обнаруживаются компиляторами или на этапе ревью кода. Благодаря ему можно минимизировать ошибки, связанные с синтаксическими конструкциями языка и их подводными камнями.
|
||
|
||
|
||
* **Cpp Check**
|
||
|
||
Сайт: https://cppcheck.sourceforge.io
|
||
|
||
Стоимость: бесплатно
|
||
|
||
Бесплатный анализатор кода. Поможет отловить распространенные ошибки при помощи анализа исходного кода, которые могут быть упущены компилятором или в процессе ревью кода. Кроссплатформенный, поддерживает популярные дистрибутивы Linux, работает под Windows.
|
||
|
||
|
||
* **Valgrind**
|
||
|
||
Сайт: https://www.valgrind.org
|
||
|
||
Стоимость: бесплатно
|
||
|
||
Набор инструментов, который поможет исследовать разнообразные проблемы во время работы приложения: утечка памяти, профилирование тормозов и т.д. Заточен для работы с различными дистрибутивами Linux.
|