Проповедь «Чистый код» снижает качество разработчиков Перевод

OleStep OleStep 13 Апреля 2023 (ред)

Ладно, обо всем по порядку… Я никоим образом не выступаю против чистого кода и не говорю, что это обязательно плохо.

Однако… в последние годы она, похоже, становится все более похожей на религию: чрезмерно усердные «эксперты» проповедуют ее молодым верующим как «единственное истинное евангелие» и осуждают тех, кто осмеливается выступать против нее, как еретиков. Это больше похоже на культ и крайне вредно для нашей индустрии.

Но разве «Чистый код» — это не хорошо?

И да, и нет… в зависимости от того, что вы понимаете под этим.

Слово «чистый» в отношении качества кода, очевидно , субъективно и может означать совершенно разные вещи для разных людей, но я думаю, что мы все можем согласиться с тем, что суть того, что подразумевается, заключается в следующем:

Код, цель которого понятна большинству прочитавших его.

Если мы оставим его там, то это благородная цель, и она принесет много очевидных преимуществ.

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

Почему это снижает качество разработчиков?

Ну… и это всего лишь моя личная теория — похоже, она создала менталитет, где:

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

Я действительно слышал, как это говорили в некоторых местах, где я работал, и я видел подобные чувства, которые повторяли в Интернете «экспертные» наставники. Но, подумай хорошенько… если мы придерживаемся такого менталитета, то все становится гонкой на выживание. Мы бы активно стремились упростить код до такой степени, что он больше походил бы на ознакомительную книгу для пятилетнего ребенка, чем на элегантную, детализированную работу мастера-автора.

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

Самое страшное здесь то, что новые разработчики не знают, чего им не хватает. Затем они становятся старшими и начинают проповедовать тот же «правильный путь» следующему поколению призывников, увековечивая и усугубляя проблему.

Как это исправить?

Я думаю, что лучший способ — это изменить способ, которым люди учатся программировать. Нам нужно отойти от «вы тоже можете стать разработчиком за 3 дня».

dev.to

2 Ответа

  1. Yori Yori 13 Апреля 2023 (ред.)

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

  1. fomiash fomiash 13 Апреля 2023

    В большом проекте с несколькими разработчиками важно не только удобство для понимания, но еще и единообразие. Для этого составляется code style. туда могут входить требования к «чистоте» кода.
    Минимальные требования к чистоте — стандартизация именований, визуальное форматирование кода, отсутствие закоментированных кусков кода и тд. что почти никак не влияет на производительность. Вообще это разные вещи, чистота и понятность, здесь они смешаны еще и в одно третье «правильный» код. С этой неопределенной позиции трудно делать выводы, если конечно не учитывать другую статью ниже по прикрепленной ссылке. Понятностью может быть разбитие кода на мелкие логические части, создание дополнительных переменных, что действительно может влиять на производительность и косвенно приучать разработчиков писать нерациональный код.