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

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

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

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

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

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

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

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

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://97-things-every-x-should-know.gitbook.io/97-things-every-programmer-should-know/ru/thing_59.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
