Большинство разработчиков согласятся с тем, что чистый код важен. Но что именно можно считать чистым кодом? Майкл Фезерс определяет его следующим образом:
Чистый код всегда выглядит так, как будто его написал тот, кому не все равно
Что это значит? Проще говоря, чистый код сводится к следующим пяти правилам:
· Используй хорошие имена
· Держи методы короткими
· Держи классы короткими
· Не повторяйся
· Избегай побочных эффектов
Давайте более подробно рассмотрим каждый из этих пяти пунктов и сегодня начнем с первого. Каждому из советов я посвящу отдельную подробную статью. И кстати, эти статьи будут базироваться на основе публикации Clean Code in Real Life, но не будут простым переводом, я буду дополнять материал своими собственными мыслями. Поехали.
Именование – одна из самых сложных вещей в разработке. Многим программистам не нравятся длинные имена, потому что их нужно долго печатать. Чтобы начать писать чистый код, тебе придется перебороть себя. Тем более, что современные среды разработки позволяют использовать автоматическое дополнение при вводе, что очень удобно.
Код гораздо лучше читается, если использует подробные имена, по сравнению с сокращениями. Сокращения заставляют мозг дополнительно напрягаться, а он очень любит экономить свои силы. Это может отпугнуть других разработчиков. Поэтому, лучше использовать имя context, чем ctx, или timeAccount, чем ta. И важно, чтобы переменная содержали в себе именно то, что в ней хранится. Если тебе удалось найти более подходящее имя – обязательно переименуй, тем более что современные IDE значительно упрощают этот процесс. Например, в Visual Studio процесс изменения имени переменной, метода или класса выполняется всего в несколько кликов: достаточно просто выделить старое имя, нажать клавишу F2 и ввести новое. Замена будет выполнена сразу во всех местах.
Но правильное именование важно не только для переменных, но и для методов и классов. Для методов очень важно убедиться, что имя и возвращаемый тип соответствуют друг другу. Например, если метод не возвращает значения (void), но при этом его имя начинается с Get, это очень сильно сбивает с толку. Или еще один пример, если метод возвращает логический тип bool, но при этом внутри метода реализован возврат только значения true, а в ином случае будет генерироваться исключение. Практическая польза от этого стремится к нулю, и только дополнительно сбивает с толка.
Для классов важно избегать обобщенных имен, которые ничего не говорят о том, что на самом дел это за класс, что он делает и для чего он нужен. Примерами плохих имен классов могут служить Manager или Helper. Из имени практически ничего не понятно, что же они на самом деле делают. Но даже небольшое расширение имен могут принести значительно больше ясности: TaskManager и StringBuildHelper. Стремись к тому, чтобы имя класса максимально ясно отражало цель его создания. Если логика была изменена и имя больше не соответствует действительности – переименуй, это вполне нормальная практика (хоть и намекающая об ошибках на этапе проектирования).
Следуя этим простым советам, ты уже значительно повысишь читаемость своего кода, что в долгосрочной перспективе сэкономит тебе (или другим разработчикам) уйму времени, сил и нервов. Завтра продолжим обсуждение темы чистого кода и рассмотрим почему важно использовать кроткие классы и методы.
Большое спасибо за прочтение! Пожалуйста, поставь лайк и подпишись на канал, чтобы не пропустить свежие статьи. Этим ты очень поможешь развитию блога!
Также рекомендую прочитать статью Что такое функциональное программирование