Много кода написано и объединено без надлежащего рассмотрения кода. Это может работать. Есть причина, почему это называется запахом кода, а не «неработающим кодом» или чем-то в этом роде. Отсутствие проверки кода - это предупреждающий знак, а не предвестник гибели.
Решение этой проблемы заключается в том, что не существует единого решения, подходящего для всех случаев, которые мы можем упаковать в ответ в стиле StackExchange. Сообщество разработчиков программного обеспечения твердо придерживается мнения, что проверка кода является критически важной «лучшей практикой», и в этом случае она пропускается. Ваше развитие больше не находится в этом узком канале «следования всем лучшим практикам». Вам нужно будет найти свой путь.
Что такое "лучшая практика" в любом случае? Когда вы приступаете прямо к этому, это набор практик, которые, как обычно думают, делают код лучше. Они делают код правильно? Черт возьми нет! Интернет изобилует историями компаний, которые следовали «передовым методам» и запутались в этом. Возможно, лучшая точка зрения на «лучшие практики» заключается в том, что они являются решениями «запускай и забывай» в мире программного обеспечения. Я ничего не могу знать о вашей компании, вашем проекте, вашей команде и смогу использовать «лучшие практики», которые помогут вам. Это общий совет "не навреди".
Вы явно отклонились от этого плана. К счастью, вы узнаете это. Отличная работа! Они говорят, что знание - это полдела; если это так, осознание - это больше половины! Теперь нужно решение. Из вашего описания становится ясно, что бизнес-среда, в которой вы находитесь, эволюционировала до такой степени, что скучный совет «иди делайте обзор кода, это лучшая практика» не собирается его сокращать. Для этого я рекомендую ключевое правило, которое я использую, когда дело доходит до лучших практик программного обеспечения:
Нет наилучшей практики разработки программного обеспечения превосходит потребности бизнеса.
Честно говоря, они платят вашу зарплату, и выживание бизнеса, как правило, гораздо важнее, чем качество программного обеспечения. Мы не хотим признавать это, но идеально написанное программное обеспечение бесполезно, если оно находится в ловушке компании, умирающей от своих усилий по поддержке этого идеально написанного программного обеспечения.
Так куда ты идешь? Следуйте по следу силы. Вы указали, что по какой-то неустановленной причине нецелесообразно проходить проверку кода для какой-либо задачи. По моему опыту, эта причина всегда временна. Это всегда либо «не хватает времени», либо «недостаточно денег, чтобы удерживать зарплаты, пока вы проводите время». Это бизнес; все в порядке. Если бы это было легко, все бы это сделали. Следуйте по пути силы вверх и найдите руководство, способное помочь вам понять, почему проверка кода не возможна. Язык жесткий, и довольно часто указ выскальзывает из высшего руководства и искажается. Решение вашей проблемы может быть скрыто в этом искажении.
Ответом на это, безусловно, является конкретный сценарий. Это все равно что пытаться предсказать, будут ли подбрасывать монеты головы или хвосты. Лучшие практики говорят, что нужно перевернуть его 100 раз, и ожидается, что он будет примерно 50 голов и 50 хвостов, но у вас нет времени перевернуть его 1 раз. Здесь важны детали вашей ситуации. Знаете ли вы, что монета, как правило, приземляется в той же ориентации, с которой ее подбрасывали примерно в 51% случаев? Вы нашли время, чтобы увидеть, как монета была перед броском? Это может иметь значение.
Одно общее решение, которое может быть доступно вам, - это попытаться найти способ затянуть процесс проверки кода и сделать его очень дешевым. Большая часть затрат на процесс проверки кода заключается в том, что каждый на 100% посвящен проверке кода, пока вы этим занимаетесь. Это должно иметь место, потому что, как только обзор кода сделан, код благословен. Возможно, вы можете поместить код в другую ветку и выполнить обзор кода параллельно с разработкой в основной ствол. Или, возможно, вы даже можете настроить его так, чтобы программное обеспечение выполняло тестирование за вас. Может быть, вы находитесь в бизнес-среде, где ваши клиенты могут запускать «новый» код параллельно со старым и заставлять их сравнивать результаты. Это превращает клиентов в набор устройств для создания вариантов использования.
Ключом ко всем этим работающим «майбам» является то, что вы должны стремиться к тому, чтобы ваш код был легко разбит на части. Возможно, вам удастся «доказать» фрагменты кода, не полагаясь на формальную проверку кода, используя их в менее важных проектах. Это легче сделать, если изменения разбиты на мелкие фрагменты, даже если их общая сумма слишком велика для рецензирования.
В общем, ищите решения, специфичные для вашего проекта, вашей компании, вашей команды. Ответ общего назначения был "лучшими методами". Вы не используете их, поэтому на этот раз вам следует искать более индивидуальные решения этой проблемы. Это бизнес. Если бы все прошло так, как мы ожидали, IPO было бы намного проще назначать значения, не так ли!
Если замена проверки кода представляет собой трудную задачу, помните, что никогда не было ни одного фрагмента кода, который, как было доказано, будет работать при проверке кода. * Все, что делает проверка кода, - это дать вам уверенность в коде и возможность внести исправления прежде чем они станут проблемой. Оба этих ценных продукта обзора кода могут быть получены другими способами. Обзор кода просто признан тем, что он особенно хорош в этом.
* Ну, почти: микроядро L4 некоторое время назад получило обзор кода с помощью автоматической системы проверки, которая проверяет, что его код, если он скомпилирован совместимым компилятором C ++, будет делать именно то, что написано в документации.