Code Must Be Clean. And Clear.

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

Существует известная книга Роберта Мартина Clean Code. Название очевидно призывает нас: код должен быть чистым. Чистым, как кухня, предполагаю я - здесь нет грязной посуды, мусора на полу, вонючих полотенец. Согласно Мартину, грязь, которую нужно убрать в коде, включает в себя большие методы, неописательные имена переменных, плотную связь, отсутствие соответствия принципам SOLID и SRP, а также многое другое. Прочтите эту книгу, она того стоит. Однако, есть еще один аспект исходного кода. Насколько понятным он является?

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

Метафора применима и к исходному коду. Сделать его чистым - это первый и очень важный шаг, который устранит все эти кодовые анти-паттерны, о которых так много говорят книги, включая мою любимую Code Complete Стива Макконнелла, Работа с легаси-кодом Майкла Фезерса и Clean Code. Очень важный шаг, но не самый важный. Грязная, но полезная кухня лучше, чем чистая, но бесполезная, не так ли?

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

Как это сделать? Как убедиться, что код ясен, а не только чист?

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

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

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

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 05:10

sixnines availability badge   GitHub stars