>
>
PVS-Studio и open-source

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

PVS-Studio и open-source

Решил написать о работе нашей команды с open-source проектами. Перечислю, какие открытые проекты к данному моменту уже проверены с помощью анализатора PVS-Studio. Расскажу о планах.

Данная статья устарела. Обновляемый список статей о проверенных проектах находится здесь.

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

Я хочу привести в порядок мысли людей, считающих, что раз проект open-source, то за это надо быть обязанным: проверять код, предоставить регистрационный ключ для PVS-Studio. Мы часто так и поступаем, и рады помочь. Но открытость кода, всего лишь означает, что компании по каким-то причинам удобнее этот формат развития проекта. При этом компании легко могут позволить себе приобрести PVS-Studio. Зачем нам отказываться от этого?

Всё, я прекращаю ворчать. Просто несправедливо после проверки такого количества проектов, розданных ключей, получать упрёк, что мы плохо поддерживаем open-source. Список проверенных open-source проектов, проверенных к настоящему времени с помощью PVS-Studio:

Наша команда проверяет проекты не безвозмездно. Заметки о найденных ошибках являются рекламой для нас. Мы этого не скрываем. Но мне кажется это самая полезная реклама, которую вы когда-либо видели! PVS-Studio действительно помогает open-source сообществу.

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

Обо всех найденных ошибках мы уведомляем разработчиков проектов. При этом часто перечисляем больше подозрительных мест, чем описываем в статьях. Мы также предоставляем ключ на некоторое время, чтобы они могли более тщательно проверить проект. Если вы участвуете в open-source проекте, напишите нам. С некоторыми open-source проектами у нас вообще складываются хорошее сотрудничество. Они пишут нам о недостатках в PVS-Studio, предлагают новые правила, а мы предоставляем им ключи. Так что мы совсем не жадные, даже наоборот. Достаточно просто попросить, а не требовать.

Ещё мы предоставляем ключи людям, имеющим статус Microsoft MVP. Правда, что-то так никто и не обращался. Решил напомнить.

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

О планах. Мы и далее планируем проверять открытые проекты и писать про это. Попробуем расширить охват. Например, теперь мы можем проверять проекты, собираемые с помощью MinGW. Кстати, пишите нам о проектах, которые стоит проверить. Ограничение - эти проекты должны собираться в Windows. А если более детально, то вот, что мы поддерживаем на данный момент:

  • Visual Studio 2013 - C, C++, C++11, C++/CX (WinRT)
  • Visual Studio 2012 - C, C++, C++11, C++/CX (WinRT)
  • Visual Studio 2010 - C, C++, C++0x
  • Visual Studio 2008 - C, C++
  • Visual Studio 2005 - C, C++
  • Embarcadero RAD Studio XE3 - C, C++, C++11
  • Embarcadero RAD Studio XE2 - C, C++, C++0x
  • Embarcadero RAD Studio XE - C, C++
  • Embarcadero RAD Studio 2010 - C, C++
  • Embarcadero RAD Studio 2009 - C, C++
  • MinGW - C, C++, C++11

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