C++ Siberia 2019: Евгений Рыжков, Современные технологии статического анализа кода

Многие разработчики до сих пор думают, что статический анализ кода – это утилита типа lint из 80-х годов, которая с помощью регулярных выражений находит только самые примитивные ошибки. К счастью, это давно не так. Анализ потока данных, символьное выполнение, аннотирование методов, сопоставление с шаблоном – все это позволяет находить мощные и интересные ошибки. Рассмотрим эти технологии и примеры ошибок, которые с их помощью можно найти. Но статический анализ – это не только ядро, но и обвязка, которая позволяет интегрироваться в проект любого размера. Если у вас проект более миллиона строк кода, то любой анализатор выдаст кучу срабатываний при первом запуске. Надо ли эти срабатывания править или можно игнорировать? Править ошибки после запуска на локальной машине или дождаться отчета с билд-сервера? Эти и некоторые другие аспекты современного подхода стоит узнать тем, кто пренебрежительно относится к анализаторам кода.