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

Чистый код — это код, который легко понять и легко изменить.

Вот несколько рекомендаций по чистоте кода:

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

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

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

Ключевые моменты чистого кода

Чистый код — это:

Именование — как использовать имена собственные

  • Переменные
  • Функции
  • Классы

Структура и комментарии

Функции

  • Длина
  • Параметры

Условия и обработка ошибок

  • Глубокая вложенность
  • Отсутствует обработка ошибок

Классы и структуры данных

  • Отсутствует отличие
  • Раздутые классы

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

Решения

  • Правила и концепции
  • Шаблоны и принципы
  • Разработка через тестирование

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

Именование

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

Будьте описательными

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

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

Правила именования

Переменные и свойства

Переменные и свойства содержат данные — числа, текст (строки), логические значения, объекты, списки, массивы, карты и т. д.

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

Например: user, product, customer, database, transaction

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

Например: isValid, didAuthenticate, isLoggedIn, emailExists

Как правило, если вы можете быть более конкретными, вы должны быть более конкретными.
Например, предпочтите customer а не user , если имеющийся код выполняет операции с этими данными, специфичные для клиента. Это облегчает чтение и понимание вашего кода.

Функции и методы

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

Поэтому функции и методы обычно должны получать глагол в качестве имени.

Например: login(), createUser(), database.insert(), log()

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

Например: isValid(…), isEmail(…), isEmpty(…)

Вы должны стараться избегать таких имен, как email(), user() . Эти имена звучат как свойства. Лучше предпочесть getEmail().

Как и в случае с переменными и свойствами, если вы можете быть более конкретными, обычно имеет смысл использовать такие более конкретные имена.

Например: createUser() вместо просто create().

Классы

Классы используются для создания объектов (если это не статический класс).

Следовательно, имя класса должно описывать тип создаваемого объекта. Даже если это статический класс (т. е. он не будет создан), вы все равно будете использовать его как своего рода контейнер для различных фрагментов данных и/или функций — поэтому вам следует описать этот контейнер.

Таким образом, хорошие имена классов, как и хорошие имена переменных и свойств, являются существительными.

Например: User, Product, RootAdministrator, Transaction, Payment

Избегайте общих имен

В большинстве случаев следует избегать общих имен, таких как handle(), process(), data, item.

Есть ситуации, когда это имеет смысл, но, как правило, вы должны либо сделать эти имена более конкретными, например processTransaction(), либо выбрать другое имя короля, например product вместо item.

Быть последовательным

Важной частью использования имени собственного является согласованность. Если вы использовали fetchUsers() в одной части кода, вы также должны использовать fetchProducts(), а не getProducts().

Как правило, не имеет значения, предпочитаете ли вы fetch, get, retrieve или любой другой термин, просто будьте последовательны.

Надеюсь, это поможет вам в вашем путешествии в качестве Java-программиста и следите за хорошим кодом!

И не забудьте проверить мой новый блог JavaCodeBox.