Как легко писать хороший код

Многие начинающие разработчики часто задумываются: “Окей, я написал классную программу, она работает, выполняет возложенные на нее задачи и не падает, но соответствует ли она понятию “качественный код”? Действительно ли это хороший код, не сплоховал ли я, вдруг с ним что-то не так?”. Конечно, абсолютного понятия “идеальный код” не существует. У многих программистов понимание, что такое хороший код, приходит с опытом, когда начинаешь понимать как и в каком месте следует делать, а как — не стоит. Однако, начинающему разработчику это не всегда очевидно, и, сам того не замечая, он пишет “код с душком”, а потом это и вовсе входит в привычку. А переучиваться, как известно, намного сложнее, чем сразу научиться делать что-то правильно.

Хороший код. Или не совсем?

Традиционно, желающим разобраться, как писать хороший код, рекомендуют к прочтению книги Роберта Мартина “Clean Code”, Мартина Фаулера “Refactoring”, ознакомиться с принципами SOLID, DRY, KISS, YAGNI и т.д. Это, безусловно, хорошая рекомендация, но на прочтение книг может уйти не одна неделя, а прочитанное часто забывается сразу после прочтения. Как же начать писать хороший код уже сейчас, может ли кто-то или что-то указать, что и в каком месте твоей программы написано не так?

Хорошо, когда под рукой есть опытный наставник, готовый выделить тебе немного своего времени для code-review. Но он не станет проверять код сию минуту, обычно придется подождать, когда у него появится свободное время, и придется ждать обратную связь несколько дней. Плюс следует учитывать человеческий фактор и какие-то ошибки он может пропустить, о каких-то рассказать в общих чертах, плюс, возможно, и сам он пишет далеко не идеальный код.

Хороший код. Что это в твоем коде?

А ведь хочется получить ответ на свой вопрос прямо здесь и сейчас, не пропустить ни одного сомнительного места, и тут же все пофиксить.

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

Хороший код. Кто тут пишет плохой код?

Для Java существует довольно большое число статических анализаторов. Наиболее популярные из них:

  • PMD – статический анализатор Java-кода, основанный на наборе правил, который обнаруживает потенциальные проблемы;
  • Checkstyle – помимо некоторого статического анализа кода, он может использоваться, чтобы показать нарушения выбранного стандарта кода;
  • FindBugs – статический анализатор с открытым исходным кодом от Университета Мэриленда;
  • SonarQube — открытая платформа для управления качеством кода;
  • Qulice — сочетает в себе несколько инструментов для статического анализа и их конфигурации;
  • IntelliJ IDEA — в эту популярную IDE уже встроен статический анализатор кода, который наверняка многие видели.

Все они имеют плагины для maven, поэтому встроить их в свой проект довольно просто.

Конечно, не всегда статические анализаторы абсолютно корректны в некоторых специфичных местах кода, но, в целом, их применение способно помочь программисту научиться писать качественный код, и, в будущем, сэкономить ему кучу времени и сил, не переписывая очередной кусок кода “с запахом”.

Как быстро и просто начать использовать статические анализаторы Java-кода? Смотри запись вебинара Виктора Кучина “Как легко написать качественный код на Java”, в котором он рассмотрит, как подключить статический анализатор к своему проекту, как использовать отдельные метрики и на что стоит обратить внимание.