Лучше быть чистым, чем чувствовать себя комфортно.

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

чистый

/ клин /

без грязи, следов или пятен.

Чистый код относится к практике написания кода таким образом, чтобы его можно было считать «чистым».

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

«Грязный» код замедляет разработку, так как больше времени тратится на попытки понять код, и если он настолько грязный, что его невозможно прочитать, вы можете обратиться за помощью к автору указанного кода… Все это приводит к тому, что на разработку собственного кода уходит меньше времени, что приводит к более медленной разработке.

В этой статье я расскажу о нескольких методах получения чистого кода.

Именование (и придание ему смысла)

Если вы хотите написать чистый код, первое, что вы должны сделать, это назвать свои переменные или классы с помощью соглашения об именах, соответствующего языку. Если вы программируете на Java, вы используете CamelCase (или camelCase) для классов и переменных; если вы программируете на Python, вы используете змеиный регистр для методов и CamelCase для классов и так далее.

В приведенном выше примере, поскольку мы используем Python, мы называем наш метод и переменную с помощью змеиного регистра, наш класс с CamelCase и константы класса с ВЕРХНИМ РЕГИСТРОМ.

И когда дело доходит до именования, это относится не только к именованию в соответствии с соглашением. Именование, которое пытается достичь чистого кода, также направлено на то, чтобы сделать эти имена значимыми. Использование различных значащих имен и/или терминов, понятных всем членам команды, (но, пожалуйста, не используйте жаргон, понятный только вашей команде) и потенциальное будущее Разработчики.

В нашем случае мы назвали класс BreakfastResponse, класс, который содержит все возможные ответы для нашей формы, которая спрашивает пользователя о частоте завтрака. В BreakfastResponse есть три константы: NO_BREAKFAST, MED_BREAKFAST, HI_BREAKFAST. Эти три константы представляют строковое содержимое, хранящееся внутри этих констант, которые являются ответами пользователю на выбор варианта «без завтрака», «достаточный завтрак» и «завтрак до отказа» соответственно. Как вы можете видеть ниже, это содержимое этих констант:

Нарезка и кости

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

Когда мой товарищ по команде пытается использовать get_fat_needs(), он не должен беспокоиться о том, как приобретается client_nutrition_status, ему нужно только сосредоточиться на основных функциях get_fat_needs(), чтобы использовать его правильно.

СУХОЙ — не повторяйся

Еще одним преимуществом фрагментации кода является возможность повторного использования. Когда набор инструкций повторяется в нескольких методах/функциях, может быть хорошей идеей создать отдельный метод только для выполнения этого набора инструкций. И в случае метода get_nutrition_status() он действительно используется снова, в нескольких методах:

Обработка ошибок

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

Переменная large_meal_in_one_day находится в диапазоне от 1 до 3, и поэтому, если ее значение не находится в этом диапазоне, значит, что-то не так. Подняв таким образом ValueError, наша система сможет изящно обработать ошибку (без паники пользователя, когда приложение сломается), а разработчики смогут лучше отслеживать ошибку или уязвимости, вызвавшие эту ошибку, перехватив эту ValueError, как мы знаем, ошибка заключается в переменной large_meal_in_one_day.

Чистый код для меня, моих коллег и вас

Мне больше всего нравится в Clean Code то, что он повышает ЧИТАЕМОСТЬ. Лично для меня это незаменимая черта при работе в команде.

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

Впрочем, это только я. Как насчет твоей? Что вам больше всего нравится в «Чистом коде»? Элегантность? Невероятно благородное стремление относиться к программированию как к ремеслу? Или что-то другое?