Хороший код — код, которого нет. Зачем он нужен?

Часто я слышу, что хороший код — это такой, который легко читается. Зачастую, это лишь один из многих критериев.

Получается, чтобы сказать, что код чистый и система спроектирована грамотно, легкого чтения кода недостаточно. Он должен обладать и другими критериями:

  • Код легко модифицировать. При правильном проектировании и архитектуре расширение кода обходится без особых временных и технических затрат. Каждая сущность, которой мы оперируем при разработке, должна отвечать только за свою часть функциональности.
  • Код должен быть предсказуемым и надежным. Хороший код и тесты всегда рядом.
  • Защищенный код.
  • Хороший код — код, которого нет. Код не стоит дублировать, а часть общих вещей должна остаться на уровне абстракций.
  • Читаемость кода. У каждого разработчика есть собственный стиль написания, а уровень чтения уже зависит от нашего опыта. Все мы хотим писать простой, красивый и лаконичный код.

В 1961 году появился термин «запахи кода» или «код с запашком». Он обозначает группу правил и рекомендаций, которые чётко определяют, пора ли делать рефакторинг. Правила бывают как и общей направленности, так и для конкретных языков программирования.

Стоит ли писать чистый код?

По личному опыту – чем хуже написан код, тем скорее к нему придётся вернуться и переписывать его. На крупных проектах это могут быть десятки файлов, хоть и не особо больших.

Не стоит забывать о целесообразности и сроке жизни вашего кода. Если задача нужна вам только сейчас или функционал потеряет актуальность через неделю, большие затраты по времени не нужны ни вам, ни клиенту. Набраться опыта вы можете на большом количестве задач, а не на переписывании одного участка.

Также не стоит писать совсем уж плохо временный функционал или служебные скрипты, которые вы планируете запускать 1-2 раза. Лучше не кидаться в крайности и найти золотую середину между количеством затраченных часов и чистотой кода, тогда рефакторинг вам понадобиться нескоро.

Как научиться писать чисто?

Для того чтобы писать чисто недостаточно просто прочитать книжку, есть ряд пунктов которые нам в этом помогают:

1) Инструмент

Удобный инструмент — это половина успеха. IDE (интегрированная среда разработки) не только дополняет код на лету, но и подсказывает места, которые стоит привести в порядок.

2) Строгие рамки

Начните разработку небольшого проекта, который решает конкретную проблему.

3) Анализ решений

Покажите свой код более опытному разработчику. Критика поможет вам понять большую часть ошибок.

4) Практика

Чистый код — это результат большого опыта работы над различными проектами.

Не забывайте, что чистый код — это утопия. Важно верно оценить свою затраты на чистый код и его продуктивность на проекте.

0
11 комментариев
Написать комментарий...
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Gre Li

Код легко модифицировать. Есть.

Код должен быть предсказуемым и надежным. Есть.

Защищенный код. Неприменимо. (О чем это вообще?)

Хороший код — код, которого нет. Ничего лишнего там не написано.

Читаемость кода. Читается легко кем угодно, есть комментарии.

Судя по статье, код довольно хорош.

Ответить
Развернуть ветку
Дмитрий Петрачков

С интересом прочел, только не понял что такое "Защищенный код", я не сталкивался с такой характеристикой, сначала подумал что это = надежный, но надежный код выше уже есть.

Про термин Code smell написано что он "обозначает группу правил и рекомендаций, которые чётко определяют, пора ли делать рефакторинг", думаю стоит добавить ссылку на список этих правил, если она есть, в гугле очень много сеошных сайтов если просто загуглить сам термин, я после пары минут сдался)

Прочтя список "Как научиться писать чисто?", я вспомнил что много полезного я узнал читая чужой, хороший код на гитхабе.

Ответить
Развернуть ветку
Валерий Гербелев

Кстати, блогеров программистов на виси почему-то мало. Больше статей - хороших и разных!)

Ответить
Развернуть ветку
Артурас Лапинскас

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

Ответить
Развернуть ветку
Олег Шиманаев IT Grade
Автор

min файлы не про это

Ответить
Развернуть ветку
Gre Li

Он не про min файлы. Бывают быстрые алгоритмы, но в которых без специальных знаний не разберёшься.

Ответить
Развернуть ветку
Вячеслав Самойленко

Спасибо. Отличная статья!

Ответить
Развернуть ветку
Александр Орлов

Да, согласен. Приходится переносить сюда качественное народное творчество из сети https://vc.ru/dev/689634-java-bydlokoding-chatgpt

Ответить
Развернуть ветку
Cere8ellum

Чистые функции тогда уж упомянуть не мешает.

Ответить
Развернуть ветку
Максим Федоров
Хороший код — код, которого нет. Код не стоит дублировать, а часть общих вещей должна остаться на уровне абстракций.

вот тут аккуартнее на поворотах, шериф с именем офицер Каплинг уже ждет вас на превышении скорости абстрагирования

если кроме шуток, драить раньше времени — огромная проблема почти всех разрабов

есть интересное правило 3х — не делать абстракции, если нет точно повтора несколько раз, тк совпадение может быть случайным. Кроме того повторы

Ответить
Развернуть ветку
8 комментариев
Раскрывать всегда