Ниже приводится резюме, выдержки и мое мнение о главе 1 «Чистого кода» Роберта Мартина. Ни одно из изображений в блоге не принадлежит мне.

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

С появлением ИИ никто на данный момент не знает, кто будет и не будет лишними.

Затем он продолжает объяснять, что такое плохой код. Затем он рассказывает о предисловии к книге Кента Бека.

Недавно я читал предисловие к книге Кента Бека «Паттерны реализации». 1 Он говорит: «. . . эта книга основана на довольно хрупкой предпосылке: хороший код имеет значение. . . ». Хрупкое помещение? Я не согласен! Я думаю, что эта предпосылка — одна из самых надежных, поддерживаемых и перегруженных среди всех предпосылок в нашем ремесле (и я думаю, что Кент это знает). Мы знаем, что хороший код имеет значение, потому что нам так долго приходилось иметь дело с его отсутствием. — Роберт С. Мартин

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

Цена беспорядочного кода в долгосрочной перспективе

Роберт Мартин отмечает, что написание беспорядочного кода в долгосрочной перспективе создает технический долг.

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

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

Компания потихоньку начала ломать монолит и писать микросервисы. Из-за быстрого расширения необходимо было добавить новые функции как к устаревшему монолиту, так и к новым микросервисам. Это удвоило ежедневные затраты компании на обслуживание и разработку.

Также из-за того, что над монолитом работало более 300 разработчиков, он чаще ломался, чем ломался. Новая функция, на создание которой ушло 3 дня, на самом деле заняла больше недели из-за сбоев при сборке.

Сверхурочная техническая задолженность распространяется на программное обеспечение, снижая производительность и увеличивая сложность разработки.

Каким должно быть отношение программиста?

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

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

ПРОФЕССИОНАЛЫ ВЫРАЖАЮТ СВОИ СЛОВА О ЧИСТОМ КОДЕ

Роберт включил мнения известных технических специалистов, чтобы описать, что такое чистый код. Мне очень нравится этот раздел :).

Вот что думают о чистом коде разные технические специалисты

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

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

Плохой код пытается сделать слишком много, у него запутанные намерения и двусмысленность целей. Чистый код сфокусирован. Каждая функция, каждый класс, каждый модуль демонстрирует целеустремленность, которая остается полностью неотвлеченной и незагрязненной окружающими деталями[P]

«Чистый код прост и прямолинеен. Чистый код читается как хорошо написанная проза. Чистый код никогда не скрывает замысел дизайнера, а скорее полон четких абстракций и прямых линий управления». — Грэди Буч

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

«Чистый код может быть прочитан и улучшен разработчиком, отличным от его первоначального автора. Он имеет модульные и приемочные тесты. У него есть значимые имена. Он предлагает один способ, а не множество способов для выполнения одной задачи. Он имеет минимальные зависимости, которые определены явно, и предоставляет понятный и минимальный API. Код должен быть грамотным, поскольку в зависимости от языка не вся необходимая информация может быть четко выражена только в коде». — Дэйв Томас

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

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

В последние годы я начинаю и почти заканчиваю с правил простого кода Бека. В порядке приоритета простой код:
Выполняет все тесты;
Не содержит дубликатов;
Выражает все дизайнерские идеи, которые есть в системе;
Сводит к минимуму количество сущностей, таких как классы, методы, функции и т. д.
Уменьшение дублирования, высокая выразительность и раннее создание простых абстракций.
Вот что для меня делает чистый код.

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

- Уорд Каннингем

Он говорит, что красивый код заставляет язык выглядеть так, как будто он был создан для этой проблемы! Поэтому мы обязаны сделать язык простым! Это не язык, благодаря которому программы кажутся простыми. Именно программист делает язык простым!

Как писать чистый код

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