# Поддерживайте чистоту кода

(В оригинале - Keep the Build Clean)

Вы когда-нибудь смотрели на длинный-длинный список предупреждений компилятора, выдаваемого в случае плохо написанного кода, думая про себя «С этим точно надо что-то делать… но сейчас на это совсем нет времени». И другая ситуация – вы смотрите на единственное только что появившееся предупреждение… и просто его исправляете.

Когда я начинаю новый проект с нуля, то в нем нет предупреждений вообще. Но по мере написания кода, если не обращать на предупреждения внимания, то их количество начинает расти (а вместе с ним и количество проблем). Когда в сообщениях компилятора много шума, гораздо сложнее найти важное сообщение среди сотен неважных.

Чтобы предупреждения снова стали осмысленными, я стараюсь делать так, чтобы их вообще не было. Даже если предупреждение неважное, я его устраняю. Если оно сообщает о потенциальной проблеме, пусть я даже уверен, что она не произойдет, я ее исправлю. Например, если компилятор предупредит о возможном использовании неинициализированного указателя, то проще это исправить, даже если в реальности эта ситуация не наступит. Если система генерации документации сообщает о незадокументированном параметре – я добавлю этот комментарий.

Если что-то становится реально неактуальным, я советуюсь с командой по поводу изменения политики генерации предупреждений. Если, например, я нахожу документирование параметров бесполезным занятием, то надо сделать так, чтобы предупреждения в этих случаях не выдавалось вообще. Или, например, при переходе на новую версию языка или компилятора старый код, ранее не выдававший предупреждений, начнет их выдавать в большом количестве. Часто исправление таких предупреждений не будет иметь смысла, а их наличие тоже ничего хорошего не принесет.

Поддерживая код чистым, я не трачу времени на анализ того, является ли то или иное предупреждение важным или нет. Такой анализ требует времени и усилий, и исключение его все лишь упростит. Чистый код также проще передать кому-то на сопровождение. Если в коде есть предупреждения, то кому-то придется их все просмотреть, чтобы определить важные и неважные. Или, что более вероятно, просто их все проигнорировать, включая и важные.

Предупреждения компилятора важны. Вам лишь нужно устранить шум, чтобы начать ими пользоваться. Не откладывайте, как только появляется новое предупреждение, сразу же его исправляйте. Или же отключайте его в компиляторе, меняя политику их генерации. Чистый код – это не только отсутствие ошибок. Предупреждения – тоже важная часть гигиены кода.

Автор оригинала - [Johannes Brodwall](http://programmer.97things.oreilly.com/wiki/index.php/Johannes_Brodwall)
