Написать пост

8 признаков плохого кода

Аватар Олег Борисенков

Разбираем признаки плохого кода, которые сигнализируют о необходимости рефакторинга.

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

Загадочные имена

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

Общие принципы именования помогут команде (особенно если в ней есть разработчики разного уровня) находить общий язык и лишний раз не ломать голову в попытках понять\придумать имя для переменной.

Вот принципы которые вы можете использовать:

  • Имя должно описывать цель существования переменной:
			let distance = 10; //Хорошо
let d = 10; // Плохо
		
  • Всеми силами избегайте непонимания:
			let dbListId = 1; //Хорошо
let dbList = 1; //Плохо
		
  • Имена должны быть произносимыми:
			let modifiedAxisType; //Хорошо
let modxyb; // Плохо
		
  • Имя должно быть удобно искать:
			let bandCustomer; //Хорошо
let bc; //Плохо
		
  • Стратегия именования должна быть согласованной:
			let client;
let customer; //Плохо

let customer; // Хорошо
		

Огромные методы

Слишком большие методы являются источником ошибок и сложны для понимания. Есть правило: функция должна выполнять одну задачу и выполнять её хорошо.

Божественный объект

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

Дублирующийся код

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

Избыток параметров

Длинный список параметров усложняет чтение, вызов и тестирование функций. Уменьшение числа параметров позволит вам сократить время на изучение и тестирование кода.

Неуместная сложность

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

Использование сложных паттернов без необходимости показывает не ваш скилл, а неспособность увидеть картину целиком и избежать излишней сложности.

Хирургия дробовиком

Термин shotgun surgery используется для случая, когда одно изменение в коде влечёт за собой множество других изменений.

8 признаков плохого кода 1
Изменения в классе A требуют множества незначительных изменений в других классах

Изменяемость переменных

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

Следите за новыми постами
Следите за новыми постами по любимым темам
20К открытий20К показов