PHP: Правила чистого кода с примерами на php

Следующие правила чистого кода основаны на предложениях экспертов по программированию.

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

// Плохо
$a = 86400;

// Хорошо
$secondsInADay = 86400;

2. Функции выполняют одну задачу.
Каждая функция должна решать только одну проблему.

// Плохо
function createUserAndSendEmail( $userDetails )
{
	// Создание пользователя
	// Отправка email
}

// Хорошо
function createUser( $userDetails )
{
	// Создание пользователя
}

function sendEmail( $userDetails )
{
	// Отправка email
}

3. Функции должны быть короткими.
Это упрощает понимание кода.

// Плохо
function doSomethingComplex()
{
	// 100 строк кода
}

// Хорошо
function doPartOfSomethingComplex()
{
	// 20 строк кода
}

4. Уровень отступов не должен превышать два.
Это помогает избежать глубокой вложенности и сложности понимания кода.

// Плохо
foreach( $users as $user )
{
	foreach( $user->orders as $order )
	{
		// еще один уровень вложенности
	}
}

// Хорошо
foreach( $users as $user )
{
	processUserOrders( $user );
}

function processUserOrders( $user )
{
	foreach( $user->orders as $order )
	{
		// обработка заказа
	}
}

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

// Плохо
global $variable;

// Хорошо
function someFunction( $variable )
{
	// тело функции
}

6. Не возвращайте null.
Это может привести к ошибкам типа Null Reference Exception.

// Плохо
function findUserById( $id )
{
	// если пользователь не найден, возвращается null
}

// Хорошо
function findUserById( $id )
{
	// если пользователь не найден, возвращается пустой объект пользователя
}

7. Уровень абстракции должен быть одинаковым.
Если функция работает с высокоуровневыми объектами, она не должна вдруг начинать работать с низкоуровневыми деталями.

8. Не используйте "магические числа" или "магические строки". Вместо этого используйте константы.

// Плохо
if( $user->type == 1 )
{
	// код
}

// Хорошо
define( 'ADMIN', 1 );
if( $user->type == ADMIN )
{
	// код
}

9. Обрабатывайте исключения, а не коды ошибок.
Это делает код чище и проще для понимания.

// Плохо
if( $user->save() == false )
{
	// обработка ошибки
}

// Хорошо
try 
{
	$user->save();
} 
catch( Exception $e )
{
	// обработка ошибки
}

10. Не повторяйтесь (DRY - Don't Repeat Yourself).
Если вы видите повторяющийся код, вынесите его в отдельную функцию.

// Плохо
echo 'Привет, ' . $userName;
echo 'Привет, ' . $adminName;

// Хорошо
function greet( $name )
{
	echo 'Привет, ' . $name;
}

11. Предпочитайте композицию наследованию.
Это повышает гибкость и переиспользуемость кода.

// Плохо
class AdminUser extends User 
{
	// методы и свойства
}

// Хорошо
class Admin 
{
	private $user;

	public function __construct( User $user )
	{
		$this->user = $user;
	}

	// методы и свойства
}

12. Используйте подходящие структуры данных.
Это может упростить код и сделать его быстрее.

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

14. Пишите комментарии.
Это помогает обнаружить ошибки и уверенно вносить изменения в код.

15. Соблюдайте стиль кодирования.
Это делает код более читаемым для всех членов команды.

16. Минимизируйте количество параметров функции.
Идеально, если функция не имеет параметров, один или два допустимы.

17. Избегайте отрицательных условий.
Отрицательные условия затрудняют чтение.

// Плохо
if( !$isNotAdmin )
{
	// код
}

// Хорошо
if( $isAdmin )
{
	// код
}

18. Функции должны быть глаголами, классы - существительными.
Это помогает понять назначение каждого из них.

// Плохо
class Creation 
{
	// код
}

// Хорошо
class User 
{
	public function create()
	{
		// код
	}
}

19. Время и место комментариев.
Лучше написать понятный код, чем оставить много комментариев. Но когда комментарии необходимы (для объяснения сложной логики, например), они должны быть точными и актуальными.

20. Оставляйте код в лучшем состоянии, чем его нашли.
Это называется принципом "Boy Scout" и означает, что вы должны улучшать код каждый раз, когда его изменяете.

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

PHP 1.2 г. Просмотров: 3.5k
Оценить код:

Комментарии

Ваш комментарий будет первым.
Войдите, чтобы оставить комментарий.