
Андрей Белобров
SberDevices
Поддержание качества кода в большой команде C++ разработчиков — нетривиальная задача.
Во многих командах есть свой стандарт кодирования, и на то, чтобы ему следовать, тратится большое количество времени при разработке и при проведении ревью кода.
Большую часть этой работы можно автоматизировать с помощью инструмента clang-tidy, который, в отличие от других инструментов статического анализа, позволяет не только находить ошибки, но и проверять соответствие кода заданному стилю.
В докладе поделюсь опытом SberDevices: как мы настроили clang-tidy так, что он стал не просто линтером, а фактически заменил наш внутренний стандарт кодирования.
На реальных примерах покажу, как анализатор помог отловить опасные ошибки с std::optional, std::string_view и use-after-move.
Расскажу, как мы постепенно внедряли сlang-tidy в крупный проект, настраивали правила и Quality Gate.
Обсудим, для чего нужно регулярно обновлять версию анализатора, что это дает и какие могут возникнуть трудности.
Рассмотрим возможности clang-tidy для модернизации кодовой базы на примере миграции проекта на C++20.
Несмотря на всю мощь инструмента, полноценное внедрение clang-tidy в процесс разработки — задача непростая и трудоемкая, особенно если внедрение происходит, когда проект достаточно большой, что не получится исправить все предупреждения за пару вечеров.
Помимо технических трудностей, также нельзя забывать про человеческий фактор.
Поговорим, как при внедрении clang-tidy сделать счастливой прежде всего команду разработки, а не статический анализатор.

SberDevices