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

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

Почему чистый код?

Программировать в существующей кодовой базе непросто. Мы все были в ситуации, когда наша производительность снижалась из-за грязного существующего кода. Вы когда-нибудь проходили через этап, когда вместо изменения одной строки вам приходилось менять сотни разных модулей?

Я лично почувствовал потребность в хорошем коде, когда отлаживал то, что можно было сделать за 5 минут, вместо этого мне потребовалось 3 часа моего критического времени.

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

Что такое чистый код?

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

Мне нравится, когда мой код элегантен и эффективен. Логика должна быть простой, чтобы было трудно скрывать ошибки, зависимости должны быть минимальными для облегчения обслуживания, обработка ошибок должна выполняться в соответствии с четко сформулированной стратегией, а производительность должна быть близкой к оптимальной, чтобы не соблазнять людей запутывать код беспринципными оптимизациями. Чистый код хорошо справляется с одной задачей.
~ Бьерн Страуструп, изобретатель C++

Чистый код прост и прямолинеен. Чистый код читается как хорошо написанная проза. Чистый код никогда не скрывает замысел дизайнера, а скорее полон четких абстракций и прямых линий управления.
~ Грэйди Буч, автор книги "Объектно-ориентированный анализ и дизайн с приложениями".

Я мог бы перечислить все качества, которые я замечаю в чистом коде, но есть одно всеобъемлющее качество, которое приводит ко всем из них. Чистый код всегда выглядит так, будто его написал неравнодушный человек. Нет ничего очевидного, что вы могли бы сделать, чтобы улучшить его. Все эти вещи были продуманы автором кода, и если вы попытаетесь вообразить улучшения, вы вернетесь туда, где вы находитесь, сидя в знак признательности за код, который кто-то оставил для вас — код, оставленный кем-то, кто глубоко заботится о коде. craft.
~ Майкл Фезерс, автор книги «Эффективная работа с устаревшим кодом».

Вы понимаете, что работаете над чистым кодом, когда каждая прочитанная вами подпрограмма оказывается почти такой, как вы ожидали. Вы можете назвать это красивым кодом, когда код также создает впечатление, что язык был создан для решения проблемы.
~ Уорд Каннингем, изобретатель Wiki

Искусство написания чистого кода

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

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

Пожалуйста, прочитайте мою следующую статью — Резюме — Чистый код Роберта С. Мартина — Часть 2: Значимые имена — чтобы понять, как выбирать осмысленные имена в вашем коде.