Clean code is a scum
live13 — 07.05.2023 Когда над кодом трудится несколько человек, да и даже один человек, всегда хочется его как-то упорядочить. Чтобы было единообразно и не как попало.И когда я только начинал что-то делать в команде всегда предпринимались попытки ввести codestyle и его придерживаться.
В сети уже было много рекомендаций как это делать и были в числе прочих статьи какого-то Дади Боба.
Мне в целом нравилось и я применял где можно кроме совсем прототипов, не предназначенных для добавления в какую-то кодовую базу.
Но потом что-то пошло не так. Любители меряться длиной органов на конференциях и получать за это приглашения на новые конференции не могли успокоиться и постепенно придумали идею Чистого кода (Clean Code). Наверное когда-нибудь об этом будут вспоминать как о увлечении организовывать все в иерархии классов в начале-середине 90-х. Но пока последние лет 10 мы живем (а иногда даже выживаем) в этой парадигме.
Что же это такое? Пожалуй что благое начинание, которое постепенно превратилось в культ. Если взять некоторые рекомендации, то в них нет ничего плохого. Но если за дело возьмется культист этого метода, то вскоре в коде будет сложно разобраться не только вам, но и ему самому. Благо пример был перед глазами.
Возможно умеренный подход и сработал бы, но полностью удачного примера я пока не видел.
Когда реальных обоснованных доводов для конференций стало не хватать, были придуманы совсем абстрактные максимы.
Больше всего мне нравятся заявления о том что код должно быть удобно читать как книгу. Но кто-нибудь читает код как книгу? Я нет. И в метро не видно людей, которые сидят читают код вместо книг.
От кода хочется понятности чтобы в нем было удобно разобраться. А требование разбивать все на мелкие функции прямо противоречит удобству чтения. Потому что это скорее походит на книгу в которой сплошные отсылки между страницами. А ведь код зачастую нужно не просто прочитать, а нужно понять что происходит на каждом шаге выполнения. И не стоит забывать что чужой код обычно читается во время code review в git или его аналоге, где перескакивать из функции в функцию особенно неудобно. А если дело идет о интерфейсах и абстракциях то все еще хуже.
К чему это я собственно вспомнил. Тут просто на youtube около месяца назад выложили одно хайповое видео о том что код может быть настолько чистый, что в нем не разберется не то что человек, а даже компилятор и в результате он даже будет медленнее выполняться. Утверждение скорее хайповое и если и верное, то лишь от части. Потому что многое зависит от языка и компилятора. Но ради хайпа имеет такое же право на существование как и сам "чистый код".
А вот и всякие реакции на видео.
Пусть сами авторы реакций настроены скептически, но комментарии под видео в целом радуют. Похоже люди осознают мошенничество с чистым кодом. А там глядишь и начнут его культистов и фанатиков по голове клавиатурой бить. Ложные практики отомрут и заживем. А там гляди и аджайл отвалится. Может и качество ПО повысится.
|
</> |