Чем меньше кода, тем лучше! Перевод

Evg Evg 14 Августа 2021

Публикуется в сокращении: The Best Code is No Code At All (Jeff Atwood), с вольным переводом.

Рич Скрента пишет (skrenta.com/2007/05/code_is_our_enemy.html на 08.2024 недоступен), что код-наш враг.

Код, это плохо. Он гниет. Он требует периодического технического обслуживания. В нем есть ошибки, которые нужно найти. Новые функции означают, что старый код должен быть адаптирован. Чем больше у вас кода, тем больше мест, где можно спрятать ошибки. Чем больше времени занимают проверки или компиляции. Тем больше времени потребуется новому сотруднику, чтобы разобраться в вашей системе. Если вам нужно рефакторинг, есть еще много вещей, которые нужно переместить. Код создается инженерами. Чтобы сделать больше кода, требуется больше инженеров…

Рич намекает, но настоящая проблема не в коде. Код, как новорожденный младенец, безупречен и невинен в ту минуту, когда он записан. Код нам не враг. Вы хотите увидеть настоящего врага? Иди посмотри в зеркало. Вот в чем проблема.

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

Я знаю, что у тебя самые лучшие намерения. Как и у всех. Мы разработчики программного обеспечения; мы любим писать код. Это то, что мы делаем. Мы никогда не сталкивались с вопросом, который не могли бы решить с помощью клейкой ленты, вешалки для одежды и щепотки кода.

Но Уил Шипли утверждает, что мы должны обуздать наши естественные склонности писать много кода:

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

В кодировании у вас есть много измерений, в которых вы можете оценить код:

  • Характерность
  • Скорость исполнения
  • Время, затраченное на кодирование
  • Гибкость
  • И т.д.

Итак, помните, что все эти измерения находятся в оппозиции друг к другу.

Я давал подобные советы, когда убеждал разработчиков писать меньше кода. И я не говорю о конкурсе reductio ad absurdum, где мы используем все хитроумные трюки в наших книгах, чтобы код поместился в меньшее физическое пространство. Я говорю о практических, разумных стратегиях сокращения объема кода, который должен прочитать отдельный программист, чтобы понять, как работает программа.

Пишите меньше кода!

Большинству разработчиков программного обеспечения больно признавать это, потому что они очень любят код, но лучший код — это вообще его отсутствие. Каждая новая строка кода, которую вы добровольно приносите в мир, — это код, который должен быть отлажен, код, который должен быть прочитан и понят, код, который должен поддерживаться.

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

Если вы любите писать код — действительно, по-настоящему любите писать код, вы будете любить его настолько, чтобы писать как можно меньше!

Интересуйтесь всем, что касается отрасли, в которой вы работаете, а не только аспектами кодирования. Следуйте этим интересам, куда бы они не вели. — Джефф Этвуд

Источник: The Best Code is No Code At All

1 Ответ

  1. German German 14 Августа 2021

    Он прав. Фактически, широко признано, что ошибки растут квадратично, а не линейно, с размером кодовой базы.

    Чем больше я занимаюсь разработкой, тем больше я чувствую, что увеличивается количество строк кода (LOC), что почти всегда приводит к увеличению количества ошибок.

    Источник: ratio of bugs per line of code