Pull to refresh
62
0
Евгений Рыжков @EvgeniyRyzhkov

Генеральный директор и сооснователь

Send message

IntelliJ IDEA, ReSharper, SonarLint and SonarQube find the same errors, as PVS-Studio — so why do we need PVS-Studio?

Reading time 2 min
Views 1.9K
Sometimes people ask the question, which addresses a certain topic but is actually about another thing. As the saying goes, a competently asked question contains half the answer.

Recently I've returned from the JPoint conference, where we first presented our new PVS-Studio analyzer for Java. Interest in static analysis is growing strongly in the last few years, so the audience perceived PVS-Studio enthusiastically. In addition to the positive feedback, as it happens, we had to handle objections. The most frequent objection to the suggestion to try PVS-Studio sounds something like this: «C'mon, why do we try PVS-Studio? We use IntelliJ IDEA, ReSharper, SonarLint and SonarQube. We've run PVS-Studio recently and it found errors, already highlighted by IntelliJ IDEA!»

I just can't help but write a small reply note to this comment. I even have two responses to this objection. And yes, I intentionally stated ReSharper, as there are some questions to our C# analyzer as well. Well, here comes the answer.
Read more →
Total votes 24: ↑23 and ↓1 +22
Comments 0

IntelliJ IDEA, ReSharper, SonarLint и SonarQube находят те же ошибки, что и PVS-Studio — ну и зачем нам PVS-Studio?

Reading time 2 min
Views 9.4K
Picture 1Иногда люди задают вопрос, который, на первый взгляд, про одно, а на самом деле про другое. Как говорится, грамотно поставленный вопрос содержит половину ответа.

На днях я вернулся с конференции JPoint, на которой впервые был представлен наш новый анализатор PVS-Studio для Java. Интерес к статическому анализу сильно растет в последние несколько лет, поэтому аудитория восприняла PVS-Studio на ура. Кроме положительных откликов, естественно, пришлось и поработать с возражениями. Самое частое возражение на предложение попробовать PVS-Studio звучит так: «Да ладно, зачем нам пробовать PVS-Studio? Мы используем IntelliJ IDEA, ReSharper, SonarLint и SonarQube. Вот мы запустили недавно PVS-Studio, и он нашел ошибки, которые и так подсвечивает IntelliJ IDEA!»

Я просто не могу не написать небольшую заметку-ответ на этот комментарий. Точнее, у меня даже два ответа на это возражение. И да, я специально указал здесь ReSharper, так как к нашему анализатору для C# такие вопросы тоже имеют место. Что ж, с радостью отвечу.
Читать дальше →
Total votes 40: ↑28 and ↓12 +16
Comments 24

RethinkDB: почему мы закрылись

Reading time 10 min
Views 24K
RethinkDB: почему мы закрылись

Перевод статьи опубликован с разрешения автора.

Когда мы объявили, что RethinkDB закрывается, я пообещал написать критический анализ посмертно. Я взял некоторое время, чтобы переосмыслить полученный опыт, и сейчас могу его четко изложить.
Читать дальше →
Total votes 47: ↑47 and ↓0 +47
Comments 45

Философия статического анализа кода: у нас 100 программистов, анализатор нашел мало ошибок, он бесполезен?

Reading time 2 min
Views 10K
Люди очень часто неправильно думают про статический анализ кода.

Часто можно встретить такое мнение, выраженное в следующем абзаце:

У нас большой проект. В нем работает несколько десятков (сотен) программистов. То есть тот самый, про который вы пишите, что нужен статический анализ. Я скачал анализатор кода, выполнил проверку и нашел очень мало ошибок. Очевидно, что анализатор кода просто бесполезен!
Читать дальше →
Total votes 43: ↑35 and ↓8 +27
Comments 26

Философия статического анализа кода: три простых шага

Reading time 2 min
Views 6.8K
Философия статического анализа кода очень проста. Чем раньше будет найдена ошибка, тем дешевле ее исправление. Инструменты статического анализа реализуют эту философию в три шага.

Шаг первый. Для начала используйте статический анализ хоть как-нибудь. Если вы не использовали статический анализ ранее, то запускайте его хоть раз в месяц. Но запускайте. Ошибка, которую найдёте вы сами, стоит дешевле, чем ошибка, которую найдёт ваш клиент.
Читать дальше →
Total votes 33: ↑29 and ↓4 +25
Comments 5

Как делался новый дизайн сайта viva64.com разработчиков анализатора кода PVS-Studio

Reading time 12 min
Views 5.1K

10 лет сайту viva64.com!


Сайту viva64.com — основной площадке разработчиков анализатора кода PVS-Studio исполнилось 10 лет! Домен был зарегистрирован 09.11.2006 года, а последнее серьезное обновление дизайна было выполнено в декабре 2010 года. Пришло время что-то поменять.
Читать дальше →
Total votes 27: ↑21 and ↓6 +15
Comments 44

Как перенести проект размером в 9 млн строк кода на 64-битную платформу?

Reading time 10 min
Views 30K
64 бита? О, интересненько!
Недавно наша команда завершила миграцию на 64-битную платформу довольного большого проекта (9 млн строк кода, 300Mb исходников). Проект занял полтора года. Хотя в силу NDA мы не можем привести название проекта, надеемся, что наш опыт окажется полезен другим разработчикам.

Читать дальше →
Total votes 46: ↑42 and ↓4 +38
Comments 52

Просмотр статистики количества ошибок в проекте, или «Ого, в PVS-Studio появились графики!»

Reading time 5 min
Views 4.9K
Ошибки исправляют бодро!

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

Итак, какая проблема с инструментами статического анализа помимо того, что они стоят дорого? Не всегда команда, которая приобрела инструмент может похвастаться тем, что ошибки с его помощью правятся. А мы как никто другой заинтересованы в эффективном использовании нашего инструмента. Нас не устроит, если клиент просто купит лицензию и положит ее на полку. Ведь у нас более половины клиентов продлевают лицензии на следующий год. Поэтому наша задача показать эффективность использования нашего инструмента для тех, кто принимает решение о продлении лицензии.

Поэтому в PVS-Studio 5.27 появилась возможность строить графики количества ошибок, обнаруженных анализатором при проверке проекта. Идея этой возможности очень простая:
  1. Если вы хотите поправить все ошибки, которые выдает PVS-Studio, то со временем у вас график должен прийти к нулю.
  2. Если вы готовы мириться со старыми ошибками, но правите все новые, то у вас график не должен расти сильно вверх.
  3. В противном случае разработчики просто не используют PVS-Studio. К сожалению, и для нас (мы не получим продление лицензии), и для вас (вы зря потратили деньги на лицензию).
Прежде чем смотреть конкретные графики, буквально пара слов о технологии. Подробнее об этой возможности можно прочитать в документации.

Читать дальше →
Total votes 24: ↑16 and ↓8 +8
Comments 2

Я наконец-то понял, что такое unit-экономика

Reading time 4 min
Views 23K
«Наконец-то понял, что такое unit-экономика!», воскликнул я сам себе. Не спешите закрывать статью, если вы уже знаете, что это. Я понял про unit-экономику для МОЕГО проекта, и, надеюсь, эта информация поможет и другим. Спасибо приятелю Коле, который зашел к нам в офис поболтать о жизни и натолкнул на эти мысли.

Итак, когда говорят о unit-экономике, то ставят такой вопрос: «Сколько вам стоит привлечение одного клиента?». Я несколько лет не мог на него ответить. И это меня очень смущало. Наша команда доросла до 12 человек, а ответить на такой простой и нужный вопрос я почему-то не мог.
Читать дальше →
Total votes 26: ↑21 and ↓5 +16
Comments 3

Как внедрить статический анализ в проект, в котором более 10 мегабайт исходного кода?

Reading time 7 min
Views 21K

Итак, вы – разработчик в проекте, в котором много (или даже очень много) исходного кода. Например, более 10 мегабайт. Вы начитались статей про проверку open source проектов и захотели проверить свой собственный проект каким-нибудь анализатором кода. Вы проверили проект и получили более тысячи сообщений от анализатора. Тысяча – это оптимистичный вариант. Может быть и более десятка тысяч. Но вы же не ленивый разработчик? Вы начали просматривать их. И, о ужас, уже пятое сообщение анализатора оказалось реальной ошибкой! А также седьмое, девятое, двенадцатое и пятнадцатое. Вы выписали себе еще десяток реальных ошибок, на которые указал анализатор и направляетесь к боссу со словами:

«Шеф, смотри. Я скачал крутой анализатор. Он нам уже только за полчаса нашел десять реальных ошибок. А всего он выдал тысячу (две, три, четыре) сообщений. Давай купим этот анализатор, мы с ребятами займемся и все сообщения поправим за две-три недели. И потом, когда все поправим, он нам будет выдавать 0 сообщений. А значит мы – крутые программисты и делаем качественный код!»

Читать дальше →
Total votes 46: ↑39 and ↓7 +32
Comments 43

Отзыв команды PVS-Studio о конференции C++ Russia, 2015

Reading time 3 min
Views 13K

Два с половиной часа в поезде – прекрасное время для того, чтобы написать благодарность организатору конференции Сергею Платонову (@sermp) и его команде за то, что наконец-то в России появилась конференция про C++! Заслуги Сергея поистине впечатляют, учитывая то, что он не обладал бюджетами Microsoft и Intel. Однако оказалось, что главное не бюджет, а желание и энтузиазм. Поэтому собранные Сергеем докладчики были выше всяческих похвал, иностранные гости – крайне общительны и любезны. А на стендах JetBrains, IncrediBuild, Kaspersky и PVS-Studio собрались не говорящие головы, а профессионалы, с которыми интересно было общаться и гостям, и соседям по стенду. Наши личные впечатления – под катом.

Читать дальше →
Total votes 34: ↑28 and ↓6 +22
Comments 12

Visual Studio: разработчики VS починили Caps Lock на своих клавиатурах

Reading time 1 min
Views 19K


Помните какой шум поднялся, когда в Visual Studio 2012 меню стало выглядеть так, как будто у разработчиков Visual Studio заело Caps Lock? Веселись, народ! Проблему починили. В Visual Studio «14» CTP2 как и в Visual Studio 2013 Update 3 RC меню будет выглядеть традиционно.
Что же делать пользователям Visual Studio 2012?
Total votes 80: ↑50 and ↓30 +20
Comments 20

PVS-Studio теперь поддерживает любую сборочную систему на Windows и любой компилятор. Легко и «из коробки»

Reading time 5 min
Views 6.1K
Бомба в PVS-Studio!

Сейчас в PVS-Studio мы делаем бомбу!

В следующей версии PVS-Studio 5.15 сможет проверять проекты, которые собираются абсолютно в любой сборочной системе: Makefile, Visual Studio Project, собственная система сборки на основе Python, Bash или что там еще… Теперь мы можем просто «наблюдать» за вызовами компилятора. И собирать всю необходимую информацию для запуска анализа автоматически. Более того, это работает с любым (разумным) компилятором C/C++, который запускается в Windows. Хотите подробностей?

Читать дальше →
Total votes 23: ↑18 and ↓5 +13
Comments 13

Сколько стоит одна ошибка в наших программах, или какие ошибки бывают в PVS-Studio и CppCat

Reading time 5 min
Views 23K
Найдена ошибка в PVS-Studiuo и CppCat В списке вопросов, которые всегда задают нам после прочтения наших статей есть вопрос: «А вы проверяете код своего анализатора им самим?». И дается ответ в том ключе, что у нас всегда проверяется код во время написания с помощью режима инкрементального анализа (проверки файлов сразу после компиляции). А также запускаются ночные проверки для всего кода. И в связи с этим мы, к сожалению (ирония), никогда не сможем написать статью про ошибки в наших программных продуктах.

Однако сегодня – именно статья про одну нашу ошибку и про то, сколько она нам стоила. Заинтриговал?

Читать дальше →
Total votes 122: ↑94 and ↓28 +66
Comments 38

Как мы пытаемся продать PVS-Studio в Google или очередные ошибки в Chromium

Reading time 14 min
Views 53K
PVS-Studio интегрируется в Ninja для проверки Chomium.


Когда мы пишем статьи про проверки каких-либо проектов с помощью PVS-Studio, то, как правило, у нас прибавляется клиентов. Тут все честно. Программисты не любят рекламу, но охотно отзываются на интересные материалы, которые легко проверить. Поэтому мы не рекламируем свой инструмент, а просто показываем, что он умеет. Однако, хотя мы проверили код Chromium уже три раза и трижды находили в нем ошибки, ордера с почтой в google.com в моей почте до сих пор нет. Поскольку мне интересно, что я делаю не так, и почему Google пока не использует PVS-Studio, я решил написать очередную статью.

Эта статья состоит из двух частей. В первой рассказывается об инфраструктуре проекта Chromium и нюансах интеграции, во второй приведены очередные найденные ошибки.

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

Хотите узнать, почему разрабатывать Chromium сложно и далеко не каждый инструмент для программистов может быть использован в проекте Chromium? Тогда читаем…

Читать дальше →
Total votes 326: ↑293 and ↓33 +260
Comments 205

PVS-Studio теперь работает и без среды Visual Studio или C++Builder – проверяем препроцессированные файлы от чего угодно

Reading time 5 min
Views 9.8K
Новинка в PVS-Studio!

В вышедшей на днях новой версии статического анализатора кода PVS-Studio 5.10 появилась маленькая незаметная утилита PVS-Studio Standalone. Как говорится, маленький шаг для человечества и большой шаг для PVS-Studio :). Эта утилита уже сейчас позволяет делать (пока) две вещи:

  • Просматривать без запуска Visual Studio IDE результаты анализа (.plog-файл), сохраненные на другой машине.
  • Анализировать уже препроцессированные файлы (полученные каким-либо образом) без запуска препроцессора и без файлов проекта или makefile-ов.


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

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

Читать дальше →
Total votes 55: ↑47 and ↓8 +39
Comments 18

«Разработчики PVS-Studio, вы вообще слышали про Clang?», или сравнение PVS-Studio и Clang без кода

Reading time 4 min
Views 9.7K
Довольно часто, когда мы пишем статьи про статический анализатор C++ кода PVS-Studio, нам задают один из следующих вопросов:
  1. А чем PVS-Studio лучше, чем Clang?
  2. А вот Clang бесплатный, а вы стоите денег – не понятно, почему?
  3. Clang лучше, туда легко можно добавить свои диагностики, ведь это open source!
  4. Вам пора закрываться, Clang вас раздавит, если не сейчас, то когда отладят версию под Windows.(ну это даже и не как вопрос сформулировано).
Пришло время обстоятельно ответить на эти вопросы.
Читать дальше →
Total votes 19: ↑12 and ↓7 +5
Comments 11

PVS-Studio идет в народ – бесплатная проверка вашего проекта

Reading time 4 min
Views 14K
Проверить ваш код?
Мы, разработчики анализатора кода PVS-Studio, следим за тем, как более опытные заграничные компании продают свои решения. Про какие-то подходы к продажам мы знаем наверняка, о каких-то можем лишь догадываться. Что-то пытаемся перенять у них, а что-то перенять не можем.

Например, помимо стандартных групп диагностик вроде General Analysis, 64-bit analysis или Optimization у нас в PVS-Studio есть группа под названием Customer's Specific. Туда попадают диагностики, которые нужны нашим клиентам, но которые не подходят под прочие группы диагностик. Выражаясь более художественно можно сказать так. Группа диагностик Customer's Specific является эрогенной зонной нашего продукта. Если ее потрогать (добавить туда какую-то диагностику), то клиенту станет очень приятно. Естественно такой подход к развитию продукта и продаже надо применять очень осторожно, так как конечный клиент не обладает полным видением продукта и не имеет представления о том, куда продукт развивается.

Еще нам нравится, как работает предпродажная команда в компании Coverity. Мы конечно не уверены в этом на 100%, но нам кажется, что они работают примерно так. Если появляется потенциальный клиент, то к нему вылетает спецназ на вертолете, который на месте настраивает окружение, запускает анализатор, внимательно работает со списком диагностических сообщений и т.п. В завершении всего этого для потенциального клиента делается ПРЕЗЕНТАЦИЯ (!), в которой клиенту рассказывают про ошибки, найденные в его проекте, и говорят, что нужно делать, чтобы их не было (купить инструмент, ага). Почему они так делают? Хороший вопрос! Наверное, они считают, что разработчик инструмента может намного более качественно им пользоваться. У него больше опыта, он легче определяет ложные срабатывания и умеет их отсеивать, у него набит глаз на реальные ошибки и он их не пропустит. Это значит, что потенциальные клиенты получат намного больше ярких впечатлений от первого знакомства с продуктом, чем если бы они сами потыкали в нём кнопки.

И мы подумали – а что если нам действовать также как Coverity? К сожалению, спецназ на вертолете мы пока выслать не можем. Но что если мы попробуем проверить код потенциальных клиентов и сами найдем реальные программные ошибки в их проектах? Да еще и сделаем презентацию ну или хотя бы отчет о найденных проблемах? Наверняка тогда больше потенциальных пользователей захочет купить наш инструмент! Но, естественно, никто нам чужой код на сторону не даст, поэтому решили попробовать проверять код потенциальных клиентов в удаленном режиме, подключаясь к их компьютерам из своего офиса. Кому такое интересно – читаем далее.

Читать дальше →
Total votes 95: ↑85 and ↓10 +75
Comments 19

Из подвала секретной лаборатории разработчиков PVS-Studio…

Reading time 3 min
Views 10K
О, интересная статья про PVS-Studio!
Время от времени мы рассказываем о своих внутренних исследованиях и разработках, которые происходят в команде разработчиков статического анализатора кода PVS-Studio для C/C++. Сегодняшняя история об очередной новинке, которую мы готовим в рамках нашего продукта.

Тем, кто следит за нашим проектом (а тем более пользуется им) известно, что наш анализатор изначально был плагином только для Visual Studio. Затем стало возможно пользоваться им как консольным приложением, встраиваемым в Makefile (спросите меня как, если не знаете). Потом, в начале этого года у нас появилась интеграция в C++Builder. Кстати у нас пока довольно мало пользователей под C++Builder, и мы не совсем понимаем почему. И вот недавно мы задумались над так называемым standalone приложением.

Читать дальше →
Total votes 49: ↑39 and ↓10 +29
Comments 73

Что общего у статического анализа и поисковиков? Хороший «top»!

Reading time 5 min
Views 1.2K
Разработчики поисковиков типа Google/Яндекс и разработчики инструментов статического анализа кода решают в каком-то смысле очень похожую задачу. И те, и другие должны предоставить пользователю некоторую выборку с ресурсами, которые «отвечают» желаниям пользователя. Нет, конечно, в идеале разработчики поисковиков хотели бы ограничиться кнопкой «Мне повезет!» (I'm Feeling Lucky). А разработчики инструментов анализа кода хотят выдавать только список реальных ошибок в коде. Но реальность как всегда накладывает ограничения. Хотите узнать, как мы сражаемся с жестокой реальностью при разработке PVS-Studio?

Читать дальше →
Total votes 25: ↑21 and ↓4 +17
Comments 5

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Works in
Date of birth
Registered
Activity