Чистий код на PHP
Переклад
- 🇺🇦 Ukrainian:
Вступ
Принципи розробки програмного забезпечення з книги Роберта К. Мартіна Clean Code адаптований для PHP. Це не керівництво по стилю. Це посібник по створенню читабельного, повторно використовуваного та придатного до рефакторингу програмного забезпечення на PHP.
Не обов'язково дотримуватися кожного принципу, викладеного тут, і ще менше з них будуть прийняті всіма. Це лише рекомендації, але вони були сформовані протягом багатьох років колективного досвіду авторами "Чистого коду".
На основі clean-code-javascript
Більшість прикладів у цій статті працюють з PHP 7+.
Змінні
Використовуйте значущі й вимовні імена змінних
Погано:
$ymdstr = $moment->format('y-m-d');
Добре:
$currentDate = $moment->format('y-m-d');
Для одного типу змінних використовуйте єдиний словник
Погано:
getUserInfo();
getUserData();
getUserRecord();
getUserProfile();
Добре:
getUser();
Використовуйте імена, за якими зручно шукати (частина 1)
Ми читаємо більше коду, ніж пишемо. Важливо, щоб код, який ми пишемо, був читабельним та здатним до пошуку. Надавайте своїм іменам зрозумілі назви, які можна легко знайти.
Погано:
// What the heck is 448 for?
$result = $serializer->serialize($data, 448);
Добре:
$json = $serializer->serialize($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
В икористовуйте імена, за якими зручно шукати (частина 2)
Погано:
class User
{
// What the heck is 7 for?
public $access = 7;
}
// What the heck is 4 for?
if ($user->access & 4) {
// ...
}
// What's going on here?
$user->access ^= 2;
Добре:
class User
{
public const ACCESS_READ = 1;
public const ACCESS_CREATE = 2;
public const ACCESS_UPDATE = 4;
public const ACCESS_DELETE = 8;
// User as default can read, create and update something
public $access = self::ACCESS_READ | self::ACCESS_CREATE | self::ACCESS_UPDATE;
}
if ($user->access & User::ACCESS_UPDATE) {
// do edit ...
}
// Deny access rights to create something
$user->access ^= User::ACCESS_CREATE;