Как отличить хороший код от плохого?

По статистике каждую минуту создаются тысячи строк кода во всем мире. Однако не всегда он одинаково качественен. Что же отличает хороший код от плохого?

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

Итак, признаки хорошего кода:

  • он выглядит умным, но не слишком;
  • используемые алгоритмы оптимальны и по скорости, и по удобочитаемости;
  • можно вернуться к написанию кода спустя несколько дней (например, после выходных) и сразу продолжить работу, не затрачивая мучительные часы на переосмысливание уже написанного;
  • классы, функции и переменные названы грамотно и продуманно, то есть не нужно постоянно напрягать мозг, зачем они нужны;
  • используются короткие методы, которые идеально выполняют одну задачу;
  • Unit-тесты пишутся просто и без каких-либо проблем;
  • код является модульным, то есть вы можете тестировать одни его части независимо от других;
  • код нагляден и понятен не только вам, но и вашим коллегам, которые захотят в него заглянуть.

А теперь признаки плохого кода:

  • комментариев слишком много и они чересчур длинны;
  • код не отличается гибкостью, его сложно поддерживать и модифицировать;
  • используются слишком длинные, а порой даже гигантские методы, состоящие из нескольких подзадач, которые не разбиваются на части;
  • если вы меняете имплементацию одного метода, не обойтись и без внесения изменений в остальные;
  • применяются очень большие try/catch-конструкции;
  • код содержит повторы, в нём встречаются идентичные либо почти идентичные блоки;
  • вы не можете придумать хорошие названия для методов либо они содержат слова «OR» и «AND»;
  • код не решает поставленных задач или решает их частично.

В результате плохой код превращается в плохо написанный учебник. В нём постоянно рассказывается об одних и тех же событиях, а все главы ссылаются друг на друга. При этом автор часто противоречит сам себе.

Хотите научиться писать действительно хороший код? Записывайтесь на курс «Разработчик Java» в OTUS!

А какие вы знаете признаки хорошего и плохого кода? Пишите в комментариях!