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

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

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

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

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

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

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


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

>
>
>
Статический анализатор кода vs разработ…

Статический анализатор кода vs разработчики. Шо, опять?

11 Июл 2022

В середине мая этого года мы опубликовали обновлённую версию нашего квиза для C++ разработчиков. Спустя 2 месяца мы решили рассказать о результатах.

0964_rezultaty_quiza_cpp_ru/image1.png

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

Мы выбрали несколько фрагментов кода из Open Source проектов, в которых анализатор PVS-Studio нашёл ошибки.

  • Каждому участнику предлагается 10 случайно выбранных фрагментов, в которых нужно найти ошибку.
  • На поиск одной ошибки даётся 60 секунд.
  • За каждый правильный ответ начисляется 1 балл, максимально можно набрать 10 баллов.
  • Если вы отвечаете неправильно или не успеваете ответить правильно за 60 секунд, то остаётесь без балла.

Механика очень простая, поэтому, если ещё не пробовали, попробуйте.

Итак, перейдём к самому интересному – результатам квиза.

На момент написания заметки в квизе приняли участие 1970 человек.

Я намеренно не стал обобщать и писать 1970 разработчиков, т.к. часть из этого числа — студенты либо люди, не занимающиеся разработкой, а проходящие квиз ради интереса. Но большая часть участников — всё же C++ разработчики, и тем удивительней, что средний балл правильных ответов – 3,53 из 10 :) Довольно неожиданно и слегка печально.

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

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

0964_rezultaty_quiza_cpp_ru/image2.png

Возможно, кто-то скажет, что мы подобрали сложные примеры и дали мало времени на их решение. Но дело не в этом.

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

  • люди не в теме. Этот как раз та часть, которая не занимается разработкой и визуально не может определить, есть ошибка в коде или нет.
  • не хотят вчитываться код. Увидел ошибку и отметил. Сразу не нашёл? Тыкну наугад или пропущу, это всё-таки не работа.
  • интересно, что там в конце. Просто интересно, какой будет результат если отмечать ошибки наугад (лично я таким образом набрал 3 правильных ответа, не являясь разработчиком).
  • отвлёкся от прохождения.

Положа руку на сердце, честно скажу, что даже не все наши разработчики из C++ отдела смогли найти каждую ошибку (их результаты я не включил в сводные данные).

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

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

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

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

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

Популярные статьи по теме
Почему в С++ массивы нужно удалять через delete[]

Дата: 27 Июл 2022

Автор: Михаил Гельвих

Заметка рассчитана на начинающих C++ программистов, которым стало интересно, почему везде твердят, что нужно использовать delete[] для массивов, но вместо внятного объяснения – просто прикрываются ма…
Конкурс внимательности: PVS-Studio vs Хакер

Дата: 21 Июл 2022

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

Время от времени мы пишем статьи в духе "статический анализатор внимательнее C++ программиста". Сегодня мы продолжим эту традицию, разве что заменив "программист" на "хакер".
Предупреждения помогают писать лаконичный код

Дата: 19 Июл 2022

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

Некоторые предупреждения анализатора или компилятора сложно однозначно классифицировать как ложное срабатывание или указание на настоящую ошибку. Бывает, что формально анализатор/компилятор прав, но …
Заводим трактор: QMake -> CMake

Дата: 18 Июл 2022

Автор: Гость

Заводим трактор: переезжаем с QMake на CMake. По дороге заглянем на улицу "Кросс компиляторщиков", в сквер "Систем сборки" и посидим в баре "Управления зависимостями". Заодно увидим тех, кто использу…
Межмодульный анализ C и C++ проектов в деталях. Часть 2

Дата: 14 Июл 2022

Автор: Олег Лысый

В первой части статьи мы рассматривали основы теории компиляции C и C++ проектов, в частности особое внимание уделили алгоритмам компоновки и оптимизациям. Во второй части мы погрузимся глубже и пока…

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

Следующие комментарии
Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно. Хотите узнать подробнее?
Принять