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

Будет код

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

Это полная ерунда. Мы никогда не избавимся от кода, потому что код представляет собой детали требований. На каком-то уровне эти детали нельзя игнорировать.

Уровень абстракции языка программирования будет продолжать расти. Количество доменных языков будет продолжать расти. Но это никогда не устранит код. Вся спецификация, написанная на этом языке высокого уровня и предметной области, будет кодом. Мы можем создавать языки, которые ближе к требованиям. Но мы никогда не откажемся от необходимой точности, поэтому всегда будет код.

Неверный код

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

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

Совокупная стоимость владения бардаком

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

Отношение

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

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

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

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

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

Майкл Фезерс, автор книги «Эффективная работа с устаревшим кодом»:Чистый код — это код, о котором позаботились. Кто-то нашел время, чтобы сохранить его простым и упорядоченным. Они уделили должное внимание деталям. Они позаботились.

Забота о нашем коде очень важна. Это похоже на то, что здание с разбитыми окнами выглядит так, будто никому до него нет дела. Таким образом, другие люди перестают заботиться. Они позволяют разбить больше окон. В конце концов они их активно ломают.

Рон Джеффрис, автор книг Extreme Programming Installed и Extreme Programming Adventures in C#:-

В порядке приоритета простой код:

• Запускает все тесты;

• Не содержит дубликатов;

• Выражает все дизайнерские идеи, которые есть в системе;

  • Минимизирует количество сущностей, таких как классы, методы, функции и т.п.

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

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