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

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

Бесплатная лицензия PVS-Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

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

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

Ваше сообщение отправлено.

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


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

>
>
Лучшие срабатывания статического анализ…

Лучшие срабатывания статического анализатора

29 Окт 2021

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

0879_Best_Warnings_ru/image1.png

Intelligence Diagnostic Filter

Что встречает человека, который впервые запустил статический анализатор на своём коде? Если проверялся большой проект, то обычно это огромное количество всевозможных предупреждений на различные участки кода.

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

Так и появилась идея разработать специальный механизм, который бы изучал список срабатываний и находил самые интересные среди них. Мы назвали его Intelligence Diagnostic Filter или сокращённо IDF.

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

Смотрим на первую десятку

Итак, вы установили анализатор – что дальше? Разумеется, нужно его запустить на достаточно большом проекте, иначе будет недостаточная отдача. Тут есть простая закономерность – чем больше строк кода, тем сложнее поддерживать его качество; а чем сложнее поддерживать его качество, тем больше багов.

0879_Best_Warnings_ru/image2.png

Вот так может выглядеть первый запуск анализатора...

Согласитесь, не очень-то хочется оценивать возможности анализатора, просматривая вот это всё подряд. Поэтому откройте дополнительный тулбар и нажмите на Best Warnings:

0879_Best_Warnings_ru/image4.png

Пример кнопки в плагине для Visual Studio

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

Примечание. Не забывайте помечать звёздочкой самые интересные срабатывания! Так вам будет легче их потом найти :)

Что дальше?

Разумеется, не стоит игнорировать остальные предупреждения. Режим Analyzer Best Warnings призван помочь вам убедиться в пользе PVS-Studio для вашего проекта и продемонстрировать возможности статического анализа. Поэтому после изучения 10 самых значимых проблем в коде по версии механизма IDF стоит вернуться и к другим предупреждениям.

Для того чтобы это сделать, достаточно ещё раз нажать на кнопку Best Warnings:

0879_Best_Warnings_ru/image6.png

Пример кнопки в плагине для Visual Studio

Теперь вы можете изучить все оставшиеся срабатывания. На самом деле, это необязательный этап. Вы можете, например, посмотреть только на уровень High:

0879_Best_Warnings_ru/image8.png

Фильтрация в плагине для Visual Studio

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

Для этого нажмите на кнопку Suppress All Messages:

0879_Best_Warnings_ru/image10.png

Подавление предупреждений в плагине для Visual Studio

Теперь вы будете видеть срабатывания исключительно на новый код. Это очень полезный механизм, так что не бойтесь его использовать. Вы всегда сможете вернуть эти срабатывания обратно в лог из файла подавления.

Примечание. Предупреждения не исчезают без следа! Если вы отредактируете код рядом с подавленным срабатыванием, оно снова покажется вам.

Развитие IDF

Механизм умной фильтрации, конечно, будет развиваться и дальше. Analyzer Best Warnings – это первый функционал, основанный на его применении, но не последний :)

У нас есть различные мысли и идеи о том, как его ещё можно использовать. Например, добавить возможность сортировки всего отчёта. Это было бы удобно, так как впоследствии можно скрывать наименее достоверные срабатывания по версии IDF. Или же добавить возможность его точечной настройки для конкретных проектов...

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

Поэтому пробуйте новый функционал и пишите нам свои мысли и идеи! Благодаря этому мы не только узнаем, насколько вам понравился новый механизм, но и найдём правильный вектор его развития.

Дополнительные ссылки

Популярные статьи по теме
Зачем нужна техническая поддержка и как в ней не выгореть?

Дата: 01 Сен 2021

Автор: Николай Миронов

Не всем нравится работать в поддержке. Огромное количество людей выгорает на ней. Так может не стоит вообще её иметь? Какую выгоду она несёт? Можно ли как-то не выгорать от поддержки? Попробуем найти…
Как делался новый дизайн сайта PVS-Studio

Дата: 04 Июн 2021

Автор: Инна Пристягина

Сайту PVS-Studio в этом году исполнится 15 лет. Это солидный возраст для любого интернет-ресурса. Далёкий 2006-й в России был признан годом гуманитарных наук. В июне появилась никому не знакомая тогд…
Kanban команды PVS-Studio. Часть 1: agile

Дата: 31 Мар 2021

Автор: Сергей Хренов

Эта статья могла появиться на свет гораздо раньше, примерно на год. Ведь около года назад мы в компании PVS-Studio решили, что пришло время поэкспериментировать с agile. Но хотелось накопить пользова…
Анализатор PVS-Studio включен в реестр отечественного ПО

Дата: 23 Мар 2021

Автор: Евгений Рыжков

PVS-Studio включен в Реестр по Приказу Минцифры России от 18.03.2021 № 156 Приложение № 2, реестровый №9837.
Мощь PVS-Studio

Дата: 17 Фев 2021

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

Это тот случай, когда ответ на комментарий перерос в небольшую заметку для блога. Мощь анализатора PVS-Studio заключается не только в том, какие ошибки может он обнаружить, но и в том, как он это дел…

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

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