Ручная или автоматическая проверка стиля кодирования?
Доброго времени суток, коллеги, программисты!
У меня вопрос для тех, кто использует стиль кодирования(coding style) в команде: как вы проверяете соответствие? Есть специальные программы для проверки или вы проверяете всё вручную? Если проверяет программа, то как проверяются такие моменты, как несоответствие стиля кодирования в используемой библиотеки и вашего.
К примеру, в вашей команде принято писать имена методов с заглавной букву DoSomething, в вашей программе используются библиотеки(C++) boost и Qt, которые вынуждают вас переопределять поведения методов с именами do_something() и doSomething() соответственно. Получается, что программа для проверки будет иметь ложное срабатывание? Как вы с этим боритесь?
В общем вопрос не праздный, хочется проверки стиля кодирования, но я не уверен, что есть смысл тратить время на поиск подходящей программы. Т.к. я не вижу пути, как она сможет решить проблему описанную выше, равно как и проблему с неправильным именованием переменных или инвариантов(«не говорящие» имена)
Автоформаттеры/авточекеры имеют смысл только когда coding style вводится в существующий проект для уменьшения количества ручной работы на этом этапе. В практической деятельности их можно использовать только как вспомогательный инструмент, а не как жёсткий критерий принятия/отклонения коммита как минимум из-за того, что в любом нормальном coding style есть правило «вы можете нарушить любое правило если это позволяет значительно улучшить читаемость/поддерживаемость кода».
Когда мы писали проект на Zend, то использовался phpcs (у него есть поддержка разных стандартов, среди которых и Zend). Этого хватало, а раз в месяц просто последнюю ревизию правили ручками, при правильно настроенной IDE править руками если и придется, то очень мало.
Мне кажется выхода два: описать свой стиль кодирования и следовать ему (глупо менять стиль чтобы проверка не спотыкалась), либо игнорировать подобные предупреждения/ошибки, а реагировать только на поправимое несоответствие.
Дело в том, что для меня автоматизация либо полная, либо она нафиг не нужна. Т.е. чтобы коммит был отвергнут в связи с некорректным написанием. Но не знаю как с этим бороться, если есть нарушения в стиле за счёт использования чужих библиотек. Вот у Вас как было организовано? на каком этапе программа проверки выполнялась? И как часто?