Правила написания чистого кода.

Правила написания чистого кода.

@webware

t.me/webware

Привет #username#. В этой статье мы поговорим о важных правилах при написание кода. Все примеры будут написаны на PHP, но правила из этой статья применимы и к другим языкам.


1-- Размещение фигурных скобок у функций:

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

Хорошо:

public function getURI()
{
}

Плохо:

public function getURI(){
}

2-- Не повторяйтесь:

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


3-- Минимизация кода.

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

Хорошо:

$controllerName = ucfirst(array_shift($segments).'Controller');

Плохо:

$controllerName = array_shift($segments).'Controller';
$controllerName = ucfirst($controllerName);

4-- Комментируйте

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


5-- Не добавляйте ненужный контекст:

Если имя вашего класса/объекта с чем-то у вас ассоциируется, не проецируйте эту ассоциацию на имя переменной.

Плохо:

$car =[
'carMake' => 'Honda',
'carModel' => 'Accord',
'carColor' => 'Blue',
];

function paintCar(&$car)
{
$car['carColor'] = 'Red';
}

Хорошо:

$car = [
'make' => 'Honda',
'model' => 'Accord',
'color' => 'Blue',
];

function paintCar(&$car)
{
$car['color'] = 'Red';
}


6-- Используем тернарный оператор (a? b: c) вместо if:

Иногда имеет смысл написать вложенные тернарные операторы, это помогает хорошо сэкономить количество кода.

Хорошо:

echo (($a == $b) ? 'yes' : 'no');

Плохо:

if($a == $b){
    echo 'yes';
}
else{
    echo 'no';
}

7-- Избегаем написания “велосипедов”:

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


8-- Не давайте переменным, классам, методам имена, способные ввести в заблуждение:

Имена классов, функций и переменных должны быть существительными. Название метода должно содержать глагол. Если метод определяет, является ли какая-то информация об объекте истинной или ложной, его имя должно начинаться с «is». Методы, которые возвращают свойства объектов, должны начинаться с «get», а устанавливающие значения свойств — «set».

Хорошо:

public function getURI()
{
return $_SERVER['REQUEST_URI'];
}

Плохо:

public function URI()
{
return $_SERVER['REQUEST_URI'];
}

9-- Делайте ваш код безопасным:

Современный код редко работает изолированно. У него есть неизбежный риск стать мишенью атак. Они необязательно должны приходить из интернета; атака может происходить через входные данные вашего приложения. В зависимости от вашего языка программирования и предметной области, вам возможно стоит побеспокоиться о переполнении буфера, SQL-инъекциях и прочих подобных проблемах. Изучите эти проблемы, и избегайте их в коде. Это не сложно если.


10-- Проверяйте на ошибки и реагируйте на них:

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


11-- Располагайте функции правильно:

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

1- Функции над кодом, который их использует:

function setName() {}
function setAge($age){}
function setCity(){}

$age = 24;    
setAge($age);

2- Сначала код, а функции внизу:

$age = 24;
setAge($age);

function setName(){}
function setAge($age){}
function setCity(){}


…На самом деле существует еще третий «стиль», при котором функции хаотично разбросаны по коду.


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


То есть, предпочтителен 2-й способ.


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


12-- Разделяйте код на короткие, обособленные части:

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

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

Источник codeby.net

Report Page