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

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

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

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

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

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

Механика очень простая, поэтому, если ещё не пробовали, [попробуйте](https://quiz.pvs-studio.com/ru/cpp/)\.

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

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

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

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

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

![0964_rezultaty_quiza_cpp_ru/image2.png](https://import.viva64.com/docx/blog/0964_rezultaty_quiza_cpp_ru/image2.png)

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

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

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

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

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

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

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

Поэтому не бойтесь пользоваться статическими анализаторами кода и дайте разработчикам возможность исправлять найденные баги, а не тратить время на их поиск\. Начать предлагаю с [бесплатной версии](https://pvs-studio.ru/ru/pvs-studio/try-free/) PVS\-Studio\. Кстати, прошедшим квиз доступен промокод на 30\-дневную лицензию, вместо 7\.

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