Как разработчики, мы должны всегда оставаться открытым и скептически настроенным.
Открыт, потому что мы не знаем, когда разработчик может нас удивить, и скептически относимся к нашим собственным идеям, потому что мы часто забываем, что в программной инженерии нет единственно правильного способа реализации решения. Логическое обоснование наших решений может иметь смысл для нас, а для других - ничего. За запахом кода может быть отличная идея. Возможно, разработчик не нашел способа выразить это должным образом.
Из-за того, что мы (люди) ужасно общаемся, не делайте ложных предположений, будьте готовы спросить владельца кода о коде, который вы просматриваете. Если он / она потерпел неудачу в кодировании идеи в соответствии со стандартами компании, как ведущий разработчик будет готов направить его / ее тоже.
Здесь субъективный подход. Объективный подход, ИМО, очень хорошо объяснен в этом вопросе .
В дополнение к ссылке выше, набор целей, которые должны быть достигнуты (ремонтопригодность, удобочитаемость, портативность, высокая степень сцепления, слабая связь и т. Д.), Не обязательно являются Десятью заповедями. Вы (команда) должны быть в состоянии адаптировать эти цели к точке, где баланс между качеством и производительностью делает работу удобной и «пригодной для разработчиков».
Я бы предложил использовать инструменты статического анализа кода для измерения прогресса качества в соответствии с этими целями. Такие инструменты, как SonarQube, предоставляют нам качественные ворота и профили качества, которые можно настраивать в соответствии с нашими приоритетами. Он также предоставляет нам средство отслеживания проблем, где разработчики могут быть нацелены на проблемы, связанные с запахом кода, ошибками, сомнительными методами и т. Д.
Такие инструменты могут быть хорошей отправной точкой, но, как я уже сказал, держите себя скептически. Вы можете найти некоторые правила в Sonar бессмысленными для вас, так что не стесняйтесь игнорировать их или удалить из своего профиля качества.