# :triangular_ruler: Инструментарий для работы с языком

Начинающие разработчики имеют малый кругозор по доступному инструментарию, который облегчает работу с кодом, повышает эффективность и оберегает от многих ошибок. Все представленные инструменты - не серебряная пуля от всех бед языка, но значительно сглаживают имеющиеся углы. Ниже представлен список распространенных и популярных инструментов, признанных разработчиками по всему миру. Данный список - лишь малая часть доступного инструментария. Со временем вы начнете лучше ориентироваться в них и найдете для себя что-то новое.

## :page_facing_up: Текстовые редакторы

* :arrow_forward: **Visual Studio Code**

    Сайт: [https://code.visualstudio.com/](https://code.visualstudio.com/)

    Стоимость: бесплатно

    Мощный и эффективный редактор текстовых файлов и исходного кода. Имеет богатую библиотеку расширений, которая позволит настроить его под себя. Также возможно настроить его под работу с исходным кодом: компиляция, запуск и отладка. Обладает мощным поисковым движком, по файлам и папкам, что повышает эффективность поиска, чтения и работы с большими проектами.


* :arrow_forward: **Notepad++**

    Сайт: [https://notepad-plus-plus.org/](https://notepad-plus-plus.org/)

    Стоимость: бесплатно

    Легковесный редактор текстовых файлов и исходного кода. Поддерживает синтаксис и подсветку распространенных языков программирования. По сравнению с Visual Studio Code, его удобно использовать для быстрого открытия и просмотра файлов. За счет своей легковесности комфортно работать с большим количеством текстовых файлов.


## :open_file_folder: IDE (Integrated Development Environment)

* :arrow_forward: **Microsoft Visual Studio IDE**

    Сайт: [https://visualstudio.microsoft.com](https://visualstudio.microsoft.com)

    Стоимость: Community Edition - бесплатно

    Интегрированная среда разработки от компании Microsoft. Предоставляет весь необходимый набор инструментов (редактор кода, компилятор, отладчик, профилировщик и т.д.) из коробки. Поддерживает разработку на различных языках программирования, а также кроссплатформенную разработку. Отличное начало для новичков, т.к. современный интерфейс студии максимально дружелюбен, и практически не требует какой-либо доработки из коробки.


* :arrow_forward: **Qt Creator IDE**

    Сайт: [https://www.qt.io/product/development-tools](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.


* :arrow_forward: **Eclipse IDE**

    Сайт: [https://www.eclipse.org/downloads/packages](https://www.eclipse.org/downloads/packages)

    Стоимость: бесплатно
    
    Довольно мощная мультиплатформенная среда разработки, но при этом тяжеловесная. Ключевая особенность Eclipse - модульность. Философия Eclipse состоит в том, что любой разработчик может доработать среду разработки под себя посредством подключения дополнительных расширений. Взята за основу некоторыми разработчиками компиляторов под специализированные ОС или микроконтроллеры (например: ОС реального времени - QNX).


* :arrow_forward: **JetBrains Clion IDE**

    Сайт: [https://www.jetbrains.com/clion](https://www.jetbrains.com/clion)

    Стоимость: бесплатная для учебных заведений, в ином случае - платная

    Мощная мультиплатформенная IDE от компании JetBrains. Как и другие IDE, она содержит полный набор инструментов для комфортной разработки программного обеспечения. Удобен для кроссплатформенной разработки как на Cи, так и на C++.


## :flashlight: Расширения

* :arrow_forward: **JetBrains ReSharper C++**

    Сайт: [https://www.jetbrains.com/resharper-cpp](https://www.jetbrains.com/resharper-cpp)

    Стоимость: бесплатная для учебных заведений, в ином случае - платная

    Расширение для MS Visual Studio. Добавляет дополнительные возможности для работы с исходным кодом: расширенная подсветка кода и подсказки по нему, построение диаграмм зависимостей между проектами, рекомендации по типовым ошибкам в коде и по его улучшению, расширенная информация во время отладки, продвинутый поиск, навигация по проектам и т.д. Является конкурентом Visual Assist.

* :arrow_forward: **Visual Assist**

    Сайт: [https://www.wholetomato.com](https://www.wholetomato.com)

    Расширение для MS Visual Studio. Добавляет дополнительные возможности для работы с исходным кодом: расширенная подсветка кода и подсказки, подробная информация во время отладки или при написании кода, продвинутый поиск, навигация по проектам и т.д. Является конкурентом JetBrains ReSharper.


* :arrow_forward: **Incredibuild**

    Сайт: [https://www.incredibuild.com](https://www.incredibuild.com)

    Стоимость: платно, актуальная цена указана на сайте

    Приложение/расширение для распределенной сборки проектов. Объединяет рабочие станции разработчиков в единую сеть, за счет чего сборка исходного кода может производиться одновременно на десятках машин параллельно. Это позволяет ускорить скорость сборки больших проектов в несколько раз.


## :electric_plug: Пакетные менеджеры и системы сборки

* :arrow_forward: **Cmake**

    Сайт: [https://cmake.org](https://cmake.org)

    Кроссплатформенная система автоматизации сборки приложения из исходного кода. Генерирует необходимые артефакты для последующей сборки приложения на целевой платформе. На текущий момент считается "стандартным" инструментом для сборки различных библиотек, в случае поставки в качестве исходного кода.

* :arrow_forward: **Conan**

    Сайт: [https://conan.io](https://conan.io)

    Стоимость: бесплатно

    Пакетный менеджер, а также менеджер зависимостей для организации C++ библиотек и фреймворков. Поддерживает работу с различными платформами: Windows, Linux, etc. Поддерживает интеграцию с CMake, Visual Studio и т.д.


* :arrow_forward: **Ninja**

    Сайт: [https://ninja-build.org](https://ninja-build.org)

    Стоимость: бесплатно

    Менеджер сборки проектов для приложений, написанных на Си и C++. Основное преимуществ менеджера: быстрая сборка проектов. Поддерживает кроссплатформенную разработку, поддерживает все популярные компиляторы.


## :mag: Анализаторы кода

* :arrow_forward: **PVS Studio**

    Сайт: [https://pvs-studio.com](https://pvs-studio.com)

    Стоимость: триал на 30 дней, далее платно

    Кроссплатформенный (Windows, Linux, MacOS) статический анализатор кода от российской компании PVS-Studio. Основная задача анализатора - провести анализ исходников на предмет различных ошибок, которые не обнаруживаются компиляторами или на этапе ревью кода. Благодаря ему можно минимизировать ошибки, связанные с синтаксическими конструкциями языка и их подводными камнями.


* :arrow_forward: **Cpp Check**

    Сайт: [https://cppcheck.sourceforge.io](https://cppcheck.sourceforge.io)

    Стоимость: бесплатно

    Бесплатный анализатор кода. Поможет отыскать распространенные ошибки при помощи статического анализа исходного кода, которые могут быть упущены компилятором или разработчикам. Кроссплатформенный, поддерживает популярные дистрибутивы Linux, работает под Windows.


* :arrow_forward: **Valgrind**

    Сайт: [https://www.valgrind.org](https://www.valgrind.org)

    Стоимость: бесплатно

    Набор инструментов, который поможет исследовать разнообразные проблемы во время работы приложения: утечка памяти, профилирование тормозов и т.д. Заточен для работы с различными дистрибутивами Linux.

## :floppy_disk: Git клиенты

* :arrow_forward: **SmartGit**

    Сайт: [https://www.syntevo.com/smartgit/](https://www.syntevo.com/smartgit/)

    Стоимость: бесплатная для личных или open source проектов, в ином случае - платная

    Полноценный кроссплатформенный комбайн для работы с git репозиториями. Из коробки предоставляет следующие возможности: прием/отправка изменений в репозитории, просмотр истории изменений, текстовый редактор для разрешения конфликтов и т.д. Поддерживает интеграцию со всеми популярными репозиториями: GitHub, BitBucket, GitLab и т.д.

* :arrow_forward: **Atlassian SourceTree**

    Сайт: [https://www.sourcetreeapp.com/](https://www.sourcetreeapp.com/)

    Стоимость: бесплатно

    Отличная бесплатная альтернатива для работы с git через графический интерфейс. Не уступает по функционалу SmartGit, за исключением отсутствия собственного редактора разрешения конфликтов. Это легко исправляется интеграцией с Visual Code или любого другого редактора, который умеет сравнивать файлы между собой. Во всем остальном дублирует функциональность SmartGit: кроссплатформенный, поддерживает интеграцию с публичными репозиториями: GitHub, BitBucket, GitLab и т.д.


* :arrow_forward: **Git Kraken**

    Сайт: [https://www.gitkraken.com/](https://www.gitkraken.com/)

    Стоимость: бесплатная для личных или open-source проектов, в ином случае - платная

    Кроссплатформенный и высокоэффективный клиент для Windows, Linux, MacOS. Поддерживает интеграцию с GitHub, Bitbucket и Gitlab, а также весь необходимый функционал для повседневной работы: изучение истории изменений, прием/отправка изменений, переключение между ветками, встроенный редактор разрешения конфликтов и т.д.

---

[**На главную страницу**](README.md)