Статический анализ и написание качественного кода на C/C++ для встраиваемых системПрограммное обеспечение
C++/С#-разработчик в команде PVS-Studio. Участвует в разработке ядра C++-анализатора и плагина интеграции с платформой SonarQube, занимается созданием новых диагностик и DevOps-утилит. Автор статей о проверке opensource-проектов.
Как учит печальный опыт множества инцидентов, требования к качеству программного кода встраиваемых систем намного выше, чем для классического программного обеспечения (игры, офисные пакеты, графические редакторы и т.д.). Поговорим о стандартах кодирования, таких как MISRA, SEI CERT, и инструментах статического анализа кода. Статические анализаторы решают две смежные, но всё-таки разные задачи: поиск ошибок и поиск запахов кода. Оба эти направления важны и должны использоваться. Однако часто эти два направления смешивают, что приводят к недоразумениям и отторжению методологии статического анализа кода. Попробуем расставить точки над i.