В рамках Плана повышения качества программного обеспечения мы недавно написали серию анализаторов кода для интеграции в наш процесс сборки.
Мы много строим, будучи PHP-приложением, никакой реальной компиляции нет, поэтому сборка действительно является модульным тестом / статическим анализом / раннером, и мы можем позволить себе потратить на это несколько циклов.
У нас были некоторые проблемы с качеством кода, и унаследованный код с множеством проблем.
Начав с того, что если он не завершится фиксацией, он будет проигнорирован, мы начали подтверждать коммиты в соответствии с нашим «желаемым» стандартом кодирования, а неудачные коммиты с ошибками, которые не соответствуют стандарту.
Техническое обслуживание было приостановлено, даже самое простое исправление устаревшего компонента требовало от разработчика переформатирования огромного количества исходного кода, и сборка чаще всего нарушалась. Излишне говорить, что мы изменили ошибки на предупреждения, и теперь они игнорируются и «в основном» бессмысленны.
Так что я бы сказал это (извлеченный из тяжелого опыта).
Убедитесь, что стандарт вашей кодовой базы достаточно близок к стандарту, который вы применяете, чтобы вам не требовалось, чтобы dev быстро переформатировал объемы кода. Или .. Вы готовы и ожидаете увеличения усилий.
Будучи небольшой командой с огромными требованиями к доставке, мы не могли позволить себе переключиться на огромную операцию по перефакторингу. Наши стандарты кодирования в настоящее время в основном обрабатываются вручную, и наследие переписывается как часть плана постоянного улучшения.
Когда я сказал, что предупреждения «в основном» бессмысленны, мы теперь используем их для записи статистики, которая позволяет нам измерять значения kpi, которые должны постоянно улучшаться.
Когда мы снова приведем в исполнение сниффы кода, мы начнем светить и введем несколько сниффов за раз, пока мы не введем стандарт в действие.