From 6ab96a2bb7d2dd0993edf05737a217a75a97983d Mon Sep 17 00:00:00 2001 From: Evgeny Melnikov Date: Sun, 10 Oct 2021 21:34:45 +0300 Subject: [PATCH] Added more tooling decsriptions --- Tooling.md | 69 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 26 deletions(-) diff --git a/Tooling.md b/Tooling.md index 6205dbb..8f05ad2 100644 --- a/Tooling.md +++ b/Tooling.md @@ -1,19 +1,19 @@ # Инструментарий для работы с языком -Начинающие разработчики имеют малый кругозор по доступному инструментарию, который облегчает работу с кодом, а также повышает эффективность и оберегает от многих ошибок при написании кода. Все эти инструменты не панацея и не серебряная пуля от всех бед языка, но они значительно сглаживают имеющиеся углы. Ниже представлен список распространенных и популярных инструментов, признанных разработчиками по всему миру.в +Начинающие разработчики имеют малый кругозор по доступному инструментарию, который облегчает работу с кодом, а также повышает эффективность и оберегает от многих ошибок при написании кода. Все эти инструменты не панацея и не серебряная пуля от всех бед языка, но они значительно сглаживают имеющиеся углы. Ниже представлен список распространенных и популярных инструментов, признанных разработчиками по всему миру. Данный список - лишь малая часть доступного инструментария. Со временем вы начнете лучше ориентироваться в них и найдете для себя что-то новое. ## IDE (Integrated Development Environment) -* Microsoft Visual Studio IDE +* **Microsoft Visual Studio IDE** Сайт: https://visualstudio.microsoft.com/ Стоимость: Community Edition - бесплатно - Интегрированная среда разработки от компании Майкрософт. Предоставляет весь необходимый набор инструментов (редактор кода, компилятор, отладчик, профилировщик и т.д.) из коробки. Поддерживает разработку на различных языках программирования, а также кроссплатформенную разработку. Отличное начало для новичков, т.к. современный интерфейс дружелюбен как к новичкам, так и к практикующим разработчикам. На первых порах это идеальный инструмент, т.к. практически не требует от себя какой-либо "доработки напильником". + Интегрированная среда разработки от компании Microsoft. Предоставляет весь необходимый набор инструментов (редактор кода, компилятор, отладчик, профилировщик и т.д.) из коробки. Поддерживает разработку на различных языках программирования, а также кроссплатформенную разработку. Отличное начало для новичков, т.к. современный интерфейс студии максимально дружелюбен, и практически не требует какой-либо "доработки напильником". -* Qt Creator IDE +* **Qt Creator IDE** Сайт: https://www.qt.io/product/development-tools @@ -22,7 +22,7 @@ Изначально Qt Creator позиционировал себя как IDE для разработки графических интерфейсов для приложений, разрабатываемых на языке C++. Но со временем данный фреймворк оброс огромными возможностями, что в итоге превратилось в полноценную экосистему для разработки кроссплатформенных приложений. Фреймворк предоставляет большую библиотеку примитивов для различных потребностей: работа с сетью, графический интерфейс, работа с базами данных, работа с популярными форматами: изображения, текстовые файлы и т.д. Современный Qt Creator выступает в роли основного конкурента для Visual Studio, но в основном он снискал славу в среде разработчиков, которые разрабатывают приложения под различные дистрибутивы Linux. -* Eclipse IDE +* **Eclipse IDE** Сайт: https://www.eclipse.org/downloads/packages/ @@ -31,7 +31,7 @@ Довольно мощная, мультиплатформенная среда разработки, но при этом довольно тяжеловесная. Ключевая особенность Eclipse - модульность. Философия Eclipse состоит в том, что любой разработчик может доработать среду разработки под себя посредством подключения дополнительных расширений. Взята за основу некоторыми разработчиками компиляторов под специализированные ОС или микроконтроллеры (например: ОС реального времени QNX). -* JetBrains Clion IDE +* **JetBrains Clion IDE** Сайт: https://www.jetbrains.com/clion/ @@ -42,34 +42,39 @@ ## Расширения -* JetBrains ReSharper C++ +* **JetBrains ReSharper C++** - Сайт: + Сайт: https://www.jetbrains.com/resharper-cpp/ - TO DO: description + Стоимость: бесплатная для учебных заведений, в ином случае - платная -* Visual Assist + Расширение для MS Visual Studio. Добавляет различные дополнительные возможности для работы с исходным кодом: дополнительная подсветка кода и подсказки по нему, построение диаграмм зависимостей между проектами, рекомендации по типовым ошибкам в коде или по его улучшению, дополнительная информация во время отладки, продвинутый поиск, навигация по проектам и т.д. Является конкурентом Visual Assist. - Сайт: +* **Visual Assist** - TO DO: description + Сайт: https://www.wholetomato.com/ -* Incredibuild + Расширение для MS Visual Studio. Добавляет различные дополнительные возможности для работы с исходным кодом: дополнительная подсветка кода и подсказки по нему, дополнительная информация во время отладки или при написании кода, продвинутый поиск, навигация по проектам и т.д. Является конкурентом JetBrains ReSharper. - Сайт: - TO DO: description +* **Incredibuild** + + Сайт: https://www.incredibuild.com/ + + Стоимость: платно, актуальная цена указана на сайте + + Приложение/расширение для распределенной сборки проектов. Объединяет все рабочие станции разработчиков в единую сеть, за счет чего сборка исходного кода может производиться одновременно на десятках машин. Это позволяет ускорить скорость сборки больших проектов в несколько раз. ## Пакетные менеджеры и системы сборки -* Cmake +* **Cmake** Сайт: https://cmake.org/ - Кроссплатформеная система автоматизации сборки приложения из исходного кода. Генерирует необходимые артефакты для последующей сборки приложения на целевой платформе. На текущий момент считается "стандартным" инструментом для сборки различных библиотек при поставке в качестве исходного кода. + Кроссплатформенная система автоматизации сборки приложения из исходного кода. Генерирует необходимые артефакты для последующей сборки приложения на целевой платформе. На текущий момент считается "стандартным" инструментом для сборки различных библиотек при поставке в качестве исходного кода. -* Conan +* **Conan** Сайт: https://conan.io/ @@ -78,26 +83,38 @@ Пакетный менеджер, а также менеджер зависимостей для организации C++ библиотек и фреймворков. Поддерживает работу с различными платформами: Windows, Linux, etc. Поддерживает интеграцию с CMake, Visual Studio и т.д. -* Ninja +* **Ninja** Сайт: https://ninja-build.org/manual.html Стоимость: бесплатно - Менеджер сборки проектов для приложений, написанны на Си и C++. Основное преимущество, которое пытается добиться данный менеджер: быстрая сборка проектов. Поддерживает кроссплатформенную разработку, поддерживает все популярные компиляторы. + Менеджер сборки проектов для приложений, написанных на Си и C++. Основное преимущество, которое пытается добиться данный менеджер: быстрая сборка проектов. Поддерживает кроссплатформенную разработку, поддерживает все популярные компиляторы. ## Анализаторы кода -* PVS Studio +* **PVS Studio** - Сайт: + Сайт: https://pvs-studio.com/ - TO DO: description + Стоимость: триал на 30 дней, далее платно + + Кроссплатформенный (Windows, Linux, MacOS) статический анализатор кода от российской компании PVS-Studio. Основная задача анализатора - провести анализ исходников на предмет различных ошибок, которые не обнаруживаются компиляторами или на этапе ревью кода. Благодаря ему можно свести до минимума ошибки, связанные с синтаксическими конструкциями языка и их подводными камнями. -* Cpp Check +* **Cpp Check** - Сайт: + Сайт: https://cppcheck.sourceforge.io/ - TO DO: description + Стоимость: бесплатно + + Бесплатный анализатор кода. Поможет отловить распространенные ошибки при помощи анализа исходного кода, которые могут быть упущены компилятором или в процессе ревью кода. Кроссплатформенный, поддерживает популярные дистрибутивы Linux, работает под Windows. + +* **Valgrind** + + Сайт: https://www.valgrind.org/ + + Стоимость: бесплатно + + Набор инструментов, которые помогут исследовать разнообразные проблемы во время работы приложения: утечка памяти, профилирование тормозов и т.д. Заточен для работы с различными дистрибутивами Linux.