
Быстрый поиск в Интернете выдает множество статей, описывающих, чем программирование похоже на написание текстов. В некоторых из этих статей говорится о том, что абзацы должны быть краткими и делать одно дело, а также о ваших методах. И как хорошие языки — компьютерные или человеческие — позволяют организовывать и выражать утверждения различными способами, что поддерживает составление абзацев или функций с максимальной ясностью. Некоторые говорят о том, что хороший текст отформатирован так, чтобы он был визуально доступен. А в некоторых статьях говорится об опущении лишних слов.
В большинстве этих статей опущен или замалчивается важный момент хорошего письма: вы никогда не должны отправлять первый черновик. Написание, независимо от того, включает ли конечный продукт код или слова, требует постоянного редактирования. Профессионально написанные описательные книги и статьи не попадают в публикацию без редактирования, чтобы текст был четким и кратким. действовать определенным образом — но этого недостаточно. Можно написать код, который выдает компьютеру все правильные команды, но требует невероятных усилий от людей, пытающихся его прочитать. Таким образом, в дополнение к серьезной проблеме написания правильного кода, вы должны убедиться, что он имеет смысл для других.
Хороший код легко понятен другим людям. Это не замедляет работу того, кто должен это понимать и поддерживать. Хорошо написанная функция может четко передать свое значение за 20 секунд или меньше. Плохо написанная функция может потребовать несколько минут, а то и больше — на порядок больше — для понимания. Хуже того, это увеличение стоимости ложится на плечи каждого, кто должен читать эту функцию с этого момента и до почти вечности существования этого кода.
Большая часть вашего дня программирования, вероятно, связана с изменением или улучшением существующего кода. Чтобы сделать это эффективно, вам сначала нужно понять соответствующий существующий код. Если большая часть этого кода написана плохо, большая часть часов в день программирования становится потраченным впустую.

Хороший код просто так не бывает
Хороший код не появляется на странице волшебным образом. Несмотря на добрые намерения, практически никто не выбрасывает идеальные предложения из головы прямо на бумагу с первой попытки.
Хорошие авторы пояснений редактируют свои предложения по ходу дела. Сначала они вбрасывают слова на страницу, чтобы быстро уловить свои текущие мысли об идее, которую пытаются донести. Затем они пересматривают новый, свежий текст, чтобы исправить грамматику, ясность, краткость, организацию и другие проблемы.
В процессе редактирования писатели заменяют одни слова более подходящими и меняют порядок других. Они сокращают предложения, чтобы сразу перейти к сути. Организация важна: писатели также перемещают предложения, пытаясь создать последовательную структуру и обеспечить разумный поток — от одной мысли к другой, от одной концепции к другой.
Не очень хорошие писатели бросают слова на страницу и быстро переходят к следующей идее. Вместо того, чтобы редактировать свой текст, они оставляют после себя болото прозы, которая сбивает с толку, раздражает и в конечном итоге не достигает своей цели информирования читателя.
Не очень хорошие кодировщики ничем не отличаются: они выбрасывают код на страницу и идут дальше. Их функции становятся длиннее, как и их классы, превращаясь в наборы бессистемных операторов со сложной логикой. Определение цели такого кода требует внимательного, поэтапного чтения и умственной гимнастики.
Чтобы быть хорошим программистом, вы должны редактировать свой код, как хороший писатель редактирует свои слова. Тем не менее, большинство программистов делают лишь поверхностное редактирование. Почему? Потому что достаточно сложно заставить код выполняться правильно, а дальнейшее редактирование только дает возможность сломать то, что уже работало.
Мы — и писатели, и программисты, все люди — постоянно ошибаемся. Ошибки в словах могут быть неправильно истолкованы, но одной простой ошибки в коде достаточно, чтобы сделать программу бесполезной или еще хуже.
Некоторые смелые люди с радостью редактируют свой код без надлежащих мер безопасности, но это медленно и рискованно. Некоторые из нас используют соответствующие элементы управления тестированием и постоянно редактируют код, как и подобает хорошим писателям. Мы исправляем код, даже если он не сломан, потому что это важная часть хорошего письма.