Чистый код: что делает код программиста чистым

Концепция чистого кода восходит к Роберту Сесилу Мартину и его книге «Чистый код: A Handbook of Agile Software Craftsmanship», где она была представлена как термин, обозначающий чисто написанный код. Однако принципы чистого кода намного старше и на самом деле зародились не в разработке программного обеспечения. Мы объясним, что такое чистый код, в чем его преимущества и как писать чистый код самостоятельно.

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

Чистый код — это не набор строгих правил. Это набор принципов написания кода, который легко понять и модифицировать. В данном случае «понятный» означает, что код может быть сразу понят любым опытным разработчиком. Следующие характеристики чистого кода делают его легко читаемым:

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

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

  • Классы и методы небольшие и выполняют только одну единственную задачу.
  • Классы и методы предсказуемы, работают так, как ожидается, и общедоступны через хорошо документированные API (интерфейсы).
  • В коде используются модульные тесты.

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

Обзор принципов чистого кода

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

Пишите код как можно проще: KISS

KISS (Keep it simple, stupid) — один из старейших принципов чистого кода. Он использовался военными США еще в 1960-х годах. KISS поощряет программистов писать свой код как можно проще. Следует избегать излишней сложности кода. Когда речь идет о программировании, никогда не существует единственного способа решения проблемы. Задача всегда может быть выполнена с помощью разных языков и сформулирована с помощью разных команд. Поэтому программисты, которые следуют принципу KISS, должны всегда спрашивать себя, нет ли более простого способа решения конкретной задачи.

Избегайте ненужных повторений: DRY

DRY (Don’t repeat yourself) — это более конкретная версия KISS. Согласно принципу DRY, функции в чистом коде должны делать только одно действие в рамках общей системы.

Примечание:

Противоположностью DRY является WET (We enjoy typing). Код является WET, когда в нем есть ненужные повторения.

Ниже приведен пример принципа DRY чистого кода: имя пользователя и пароль извлекаются в коде дважды и затем используются для разных действий. Вместо того чтобы программировать оба процесса по отдельности, их можно объединить в одной функции. Это превращает WET-код с повторениями в DRY-код.

WET-код:

//Version A
let username = getUserName();
let password= getPassword();
let user = { username, password};
client.post(user).then(/*Version A*/);

//Version B
let username = getUserName();
let password= getPassword();
let user = { username, password};
client.get(user).then(/*Version B*/);

DRY-код:

function getUser(){
  return {
    user:getUserName();
    password:getPassword();
  }
}

//Version A
client.post(getUser()).then(/*Version A*/ );

//Version B
client.get(getUser()).then(/*Version B*/);

Удалите то, что не нужно: YAGNI

Принцип чистого кода YAGNI (You are not gonna need it) основан на следующей идее: разработчик должен вводить дополнительную функциональность в код только тогда, когда это необходимо. YAGNI тесно связан с методами гибкой разработки программного обеспечения. Согласно принципу YAGNI, вместо того чтобы отталкиваться от всеобъемлющей концепции при разработке, вы должны программировать архитектуру программного обеспечения небольшими шагами, чтобы иметь возможность реагировать на проблемы динамично и индивидуально. Таким образом, чистый код всегда получается тогда, когда основная проблема решена наиболее эффективным способом.

Читабельность над краткостью

Код должен работать и быть понятен машине, выполняющей его. Однако код должен быть понятен и другим разработчикам, особенно если вы работаете над проектом с несколькими людьми. Вот почему читабельность кода всегда важнее его краткости, когда речь идет о разработке программного обеспечения. Нет смысла писать лаконичный код, если другие разработчики не могут его понять. Хороший пример создания читабельного чистого кода можно найти в именовании переменных.

Имя переменной всегда должно быть понятным. Следующая переменная непонятна без некоторых фоновых знаний и объяснения:

int d;

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

int elapsedTimeinDays;

Оцените статью
cdelat.ru
Добавить комментарий