﻿# PVS\-Studio \- двигатель прогресса

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

![0659_PVS_Studio_engine_of_progress_ru/image1.png](https://import.viva64.com/docx/blog/0659_PVS_Studio_engine_of_progress_ru/image1.png)

PVS\-Studio \- это статический анализатор для выявления ошибок и потенциальных уязвимостей в исходном коде программ, написанных на языках С, C\+\+, C\# и Java\.

Для популяризации методологии статического анализа кода и нашего инструмента мы пишем заметки о проверке различных открытых [проектов](https://pvs-studio.ru/ru/blog/inspections/)\. В том числе, мы время от времени проверяем различные компиляторы\. Например, мы проверяли и находили ошибки в таких проектах, как: GCC, LLVM, PascalABC\.NET, Roslyn\.

Мы уже не раз замечали интересный факт\. Как только мы проверяем, скажем, LLVM или GCC, то через один\-два релиза в этих компиляторах появляется пара новых диагностик, нацеленных на выявление ошибок, которые удалось найти PVS\-Studio в их коде :\)\. К сожалению, мы не догадались выписывать даты и ссылки на соответствующие нововведения, поэтому вам придётся поверить здесь нам на слово\. Различные C\+\+ компиляторы заимствуют некоторые наши диагностики, и мы считаем, что это совершенно нормально, правильно и полезно\!

Помимо C\+\+ компиляторов теперь к заимствованию диагностик подключились и C\# анализаторы\. Это значит, что C\# анализатор, реализованный в PVS\-Studio, становится другим образцом для подражания\! Осознавать это приятно и здорово\.

В данном случае я могу зафиксировать, можно сказать, в реальном времени, как это происходит\. 13 августа 2019 года мы опубликовали большую [статью](https://pvs-studio.ru/ru/blog/posts/csharp/0656/), посвященную проверке \.NET Core Libraries \(CoreFX\)\. Помимо всего прочего, в этой статье мы описали паттерн ошибки, связанный с использованием интерполированных строк \(см\. диагностику [V3138](https://pvs-studio.ru/ru/docs/warnings/v3138/)\)\. Разработчики CoreFX с интересом отнеслись к нашей публикации и приступили к исправлению найденных нами ошибок\. И уже 14 августа они добрались до найденных нами ошибок, связанных с этими самыми интерполированными строками: [Fix a few missing $s for string interpolation in tracing](https://github.com/dotnet/corefx/pull/40322)\.

Теперь самое интересное\. В этот же самый день в проекте Roslyn Analyzers появилась задача по реализации новой диагностики "[New rule: Interpolated strings that are missing the $ special character \#2767](https://github.com/dotnet/roslyn-analyzers/issues/2767)", связанная как раз с ошибками, исправленными в CoreFX\.

Нам приятно, что наш труд оказался полезен разработчикам CoreFX и что наши диагностики стали примером для подражания у разработчиков Roslyn Analyzers\. Немного жаль, что нигде в дискуссии не упоминается инструмент PVS\-Studio\. Получается, что как будто они сами нашли эти ошибки и сами придумали сделать диагностики\. Нам бы, конечно, польстило, если бы нас упоминали как первоисточник\. Ну да ладно\.

Почему мы решили написать про всё это? Нам очень приятно, и мы даже немного гордимся собой\! Изучая наш опыт, другие компиляторы реализуют новые диагностики, что повышает качество разрабатываемого программного обеспечения в целом\. Я понимаю, что не только мы влияем на развитие возможностей компиляторов по поиску ошибок\. Однако нам приятно осознавать, что мы вносим вклад в этот процесс\.

Беспокоит ли нас, что другие инструменты постепенно учатся находить те же ошибки, что и PVS\-Studio? Нет\. Наш инструмент как раз существует и продаётся по той причине, что мы всегда опережаем возможности компиляторов\. Наша задача \- всегда оставаться впереди\. Осознание же того, что нас постоянно догоняют, не позволяет нам расслабляться, и это идёт всем на пользу\. Помимо этого, надо понимать, что PVS\-Studio это не только предупреждения, но и:

* Быстрая качественная поддержка \(на письма отвечают только программисты\);
* Интеграция с Visual Studio, IntelliJ IDEA, SonarQube, Jenkins, Incredibuild;
* Возможность использования как локально, так и в облаке \(Docker, Travis CI\);
* Инструменты интеграции анализа в большие старые проекты \(Mass Suppression\);
* Подробная документация с примерами по каждому паттерну ошибки;
* Механизм рассылки писем разработчикам \(BlameNotifier\);
* Отслеживание запусков компилятора \(Compiler Monitoring\);
* И так далее\.

Спасибо за внимание\. Надеюсь, вы порадовались вместе с нами за PVS\-Studio\. И [попробуйте](https://pvs-studio.ru/ru/pvs-studio/download/) наш анализатор для непрерывного контроля качества кода ваших проектов\.

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

1. [График развития диагностических возможностей в PVS\-Studio](https://pvs-studio.ru/ru/blog/posts/0632/)\.
1. [Технологии, используемые в анализаторе кода PVS\-Studio для поиска ошибок и потенциальных уязвимостей](https://pvs-studio.ru/ru/blog/posts/cpp/0592/)\.