Для получения триального ключа
заполните форму ниже
Team License (базовая версия)
Enterprise License (расширенная версия)
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
GBP
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
C#, PVS-Studio, ReSharper

C#, PVS-Studio, ReSharper

03 Фев 2016

Нам постоянно задают вопрос: "Есть ли смысл использовать анализатор кода PVS-Studio, если уже используется ReSharper?". Подразумевается, что ответом должна стать статья, где будут приведено сравнение возможностей этих инструментов в выявлении ошибок в программах. Мы знаем, что это тупиковый путь, и такая статья ничего не даст. Однако вопрос задаётся столь часто, что на него все-таки надо иметь ответ. Ответ - да, смысл есть. Сразу предупреждаю, что в статье вы не найдете ожидаемого сравнения. Но если вы потратите всего 10 минут, чтобы полностью прочитать эту статью, то мы уверены вы согласитесь с нашим ответом и видением ситуации.

0373_resharper_ru/image1.png

PVS-Studio - статический анализатор кода, выявляющий ошибки в коде программ на языке C, C++. Недавно анализатор освоил новое для себя поприще - C#. Исторически сложилось, что среди вспомогательных инструментов для C# царствует ReSharper. Этот инструмент относится к категории productivity tool и не является в классическом понимании статическим анализатором кода. Однако ReSharper умеет выполняет множество различных проверок и раскрашивает подозрительные участки кода. Поэтому у программистов неизбежно возникает вопрос: "есть ли смысл смотреть в сторону PVS-Studio, если уже есть ReSharper?".

Ответ: Да! Мы уверены в этом ответе. Но вот обосновать это простой табличкой сравнения возможностей не получится. Сделать такую табличку не проблема. Но мы зареклись делать подробные сравнения. Как показывает жизнь, написание таких сравнений, скорее портит нам карму, а не улучшает её.

Например, у нас был опыт сравнения PVS-Studio с Cppcheck и Visual Studio SCA. Было потрачено много времени и сил. Результаты были представлены в кратком и подробном варианте. После чего только ленивый не написал, что мы всё сделали неправильно или, что наше сравнение является нечестным благодаря специально выбранным проектам для проверки.

Мы не видим более смысла тратить время на подобные сравнения. Как бы тщательно и честно мы не подошли к нему, всегда можно будет сказать, что сравнение было предвзято.

Тем не менее что-то нам нужно отвечать человеку, который спрашивает про ReSharper. Мы можем предложить отличный вариант сравнения:

Вы уже используете ReSharper? Отлично! Теперь установите PVS-Studio и найдите в своём проекте ошибки!

Это будет лучшей демонстрацией пользы от использования PVS-Studio. Кстати, здесь нет никакого противопоставления. Инструменты могут отлично дополнять друг друга.

Читатель скажет - хорошо, новый инструмент не повредит. Но сможете ли вы попасть на рынок C# инструментов? Здесь уже всё давно занято и поделено. Нужен ли кому-то PVS-Studio для C#? Для начала ответ такой:

0373_resharper_ru/image2.png

Рисунок. "Верная смерть. Никаких шансов на успех. Так чего же мы ждём?!" (en).

На самом деле, мы уже сталкивались с вопросом, "нужен ли анализатор PVS-Studio?". Этот вопрос звучал, когда анализатор PVS-Studio был молод и ему только предстояло завоевать популярность среди С++ программистов. Казалось бессмысленным появление ещё одного инструмента, ведь уже существовали:

  • Компиляторы, реализующие в себе функциональность статических анализаторов. Например, некоторые редакции Visual Studio содержат статический анализатор C++ кода. А ещё, например, есть Clang.
  • Существуют бесплатные анализаторы кода, такие как Cppcheck.
  • Есть мощные платные инструменты: Coverity, Klocwork и так далее.

Так зачем нужен "PVS-Studio для C++?". И нам нечего было ответить на этот вопрос. Нечего на него ответить и сейчас. Но этот вопрос больше не имеет никакого значения. Мы с легкостью можем продемонстрировать ту пользу, которую приносит анализатор PVS-Studio.

Больше нет разницы, есть какие-то другие инструменты или нет. Мы нашли тысячи ошибок в программах, чему есть документальное подтверждение. Мы нашли эти ошибки, не смотря на существование других инструментов. Сколько угодно можно говорить про конкурентные преимущества. Но нам это не интересно. Вот вам 9355 ошибок, найденных в таких проектах как Chromium, Qt, LibreOffice, TortoiseSVN, Unreal Engine 4 и так далее.

Более того, теперь мы можем давать ссылки, когда кто-то хочет сравнения с конкретным инструментом.

  • Например, кто-то хочет узнать, чем мы лучше Clang. Отлично. Всё очень просто. Мы находили ошибки в Clang: ссылка 1, ссылка 2.
  • Кто-то хочет знать, есть ли смысл использовать анализатор PVS-Studio, или можно ограничиться анализатором, реализованным в Visual Studio. Конечно смысл есть. Не зря же мы находим ошибки в библиотеках Visual Studio: 2012, 2013.
  • Стоит ли покупать PVS-Studio, если есть бесплатный Cppcheck. Конечно. На эту тему есть статья-сравнение, которое все поругали. Поэтому можно и по-другому: ссылка.
  • Кто-то уверен, что Coverity/Klocwork достаточно на все случаи жизни. Бесспорно, это мощные и крайне полезные инструменты. Но и PVS-Studio не лыком шит, раз может находить то, что не видят эти инструменты: ссылка 1, ссылка 2.

С C# анализатором мы только в начале этого пути. Пока мы можем скромно заявлять:

  • Мы находили ошибки в проекте Roslyn.
  • Да и вообще, мы находим ошибки в проектах компании Microsoft, которая славится высоким качеством исходного кода. Найти хоть что-то, это уже большое достижение. Примеры: CoreFX, Microsoft Code Contracts

Подождите немного, и вопрос сравнения отпадёт. Хотя нет, не ждите. Анализатор уже можно и нужно использовать. Пусть он молод, и мы пока реализовали только малую часть диагностик из запланированного. Но он прямо сейчас может начать приносить пользу. Попробуйте режим автоматической проверки после компиляции. Надеемся, вам понравится. А если что-то не так - пишите, мы очень активно работаем с отзывами и пожеланиями.

Итоги. Не зависимо от того, используете вы ReSharper или нет, мы предлагаем скачать и попробовать анализатор PVS-Studio. Если он найдет ошибки в вашем проекте, это будет лучшее доказательство его пользы. Только не забывайте, что единичные проверки не имеют смысла. Анализаторы кода приносят пользу только при регулярном использовании. Неэффективно искать опечатки и ошибки, отлаживая код, если это может сделать за вас анализатор. Конечно, он не способен найти все ошибки, но сможет сэкономить вам массу времени на более полезные дела, чем на поиск опечатки в условии.

Популярные статьи по теме
Технологии, используемые в анализаторе кода PVS-Studio для поиска ошибок и потенциальных уязвимостей

Дата: 21 Ноя 2018

Автор: Андрей Карпов

Краткое описание технологий, используемых в инструменте PVS-Studio, которые позволяют эффективно обнаруживать большое количество паттернов ошибок и потенциальных уязвимостей. Статья описывает реализа…
Как и почему статические анализаторы борются с ложными срабатываниями

Дата: 20 Мар 2017

Автор: Андрей Карпов

В своей предыдущей статье я писал, что мне не нравится подход, при котором статические анализаторы кода оцениваются с помощью синтетических тестов. В статье приводился пример, воспринимаемый анализат…
Эффект последней строки

Дата: 31 Май 2014

Автор: Андрей Карпов

Я изучил множество ошибок, возникающих в результате копирования кода. И утверждаю, что чаще всего ошибки допускают в последнем фрагменте однотипного кода. Ранее я не встречал в книгах описания этого …
PVS-Studio для Java

Дата: 17 Янв 2019

Автор: Андрей Карпов

В седьмой версии статического анализатора PVS-Studio мы добавили поддержку языка Java. Пришло время немного рассказать, как мы начинали делать поддержку языка Java, что у нас получилось и какие дальн…
Главный вопрос программирования, рефакторинга и всего такого

Дата: 14 Апр 2016

Автор: Андрей Карпов

Вы угадали, ответ - "42". Здесь приводится 42 рекомендации по программированию, которые помогут избежать множества ошибок, сэкономить время и нервы. Автором рекомендаций выступает Андрей Карпов - тех…
Зло живёт в функциях сравнения

Дата: 19 Май 2017

Автор: Андрей Карпов

Возможно, читатели помнят мою статью под названием "Эффект последней строки". В ней идёт речь о замеченной мной закономерности: ошибка чаще всего допускается в последней строке однотипных блоков текс…
Характеристики анализатора PVS-Studio на примере EFL Core Libraries, 10-15% ложных срабатываний

Дата: 31 Июл 2017

Автор: Андрей Карпов

После большой статьи про проверку операционной системы Tizen мне было задано много вопросов о проценте ложных срабатываний и о плотности ошибок (сколько ошибок PVS-Studio выявляет на 1000 строк кода)…
PVS-Studio ROI

Дата: 30 Янв 2019

Автор: Андрей Карпов

Время от времени нам задают вопрос, какую пользу в денежном эквиваленте получит компания от использования анализатора PVS-Studio. Мы решили оформить ответ в виде статьи и привести таблицы, которые по…
Статический анализ как часть процесса разработки Unreal Engine

Дата: 27 Июн 2017

Автор: Андрей Карпов

Проект Unreal Engine развивается - добавляется новый код и изменятся уже написанный. Неизбежное следствие развития проекта - появление в коде новых ошибок, которые желательно выявлять как можно раньш…
Как PVS-Studio оказался внимательнее, чем три с половиной программиста

Дата: 22 Окт 2018

Автор: Андрей Карпов

PVS-Studio, как и другие статические анализаторы кода, часто выдаёт ложные срабатывания. Но не стоит спешить считать странные срабатывания ложными. Это короткая история о том, как PVS-Studio вновь ок…

Комментарии (0)

Следующие комментарии

На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Этот сайт использует куки и другие технологии, чтобы предоставить вам более персонализированный опыт. Продолжая просмотр страниц нашего веб-сайта, вы принимаете условия использования этих файлов. Если вы не хотите, чтобы ваши данные обрабатывались, пожалуйста, покиньте данный сайт. Подробнее →
Принять