介绍
软件工程原理,摘自 Robert C. Martin 的著作 《代码整洁之道》,适用于 PHP。这不是风格指南。而是使用 PHP 编写可读、可重用和可重构软件的指南。
并非本文中的每一条原则都必须严格遵循,而且得到普遍认可的原则甚至更少。这些原则仅是指导方针,仅此而已,但它们是《代码整洁之道》作者们经过多年的集体经验总结而成的。
受到 clean-code-javascript 的启发。
尽管许多开发人员仍在使用 PHP 5,但本文中的大多数示例仅适用于 PHP 7.1+。
变量
变量是编程中不可或缺的一部分,在编写时应该考虑如何能够通俗易懂,避免给自己和他人造成不必要的麻烦。
使用有意义且易发音的变量名
不建议的:
$ymdstr = $moment->format('y-m-d');
推荐的:
$currentDate = $moment->format('y-m-d');
对同一类型的变量使用相同的词汇
不建议的:
getUserInfo();
getUserData();
getUserRecord();
getUserProfile();
推荐的:
getUser();
使用可搜索的名称(第 1 部分)
我们阅读的代码比我们编写的代码要多。我们编写的代码必须可读且易于搜索,这一点很重要。如果不命名对理解我们的程序有意义的变量,我们会伤害读者。请使您的名称易于搜索。
不建议的:
// 448 到底是干什么用的?
$result = $serializer->serialize($data, 448);
推荐的:
$result = $serializer->serialize($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
使用可搜索的名称(第 2 部分)
不建议的:
class User
{
// 这个 7 是做什么用的?
public $access = 7;
}
// 这个 4 是做什么用的?
if ($user->access & 4) {
// ...
}
// 这里发生了什么事?
$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;
// 默认情况下,用户可以读取、创建和更新一些东西。
public $access = self::ACCESS_READ | self::ACCESS_CREATE | self::ACCESS_UPDATE;
}
if ($user->access & User::ACCESS_UPDATE) {
// 编辑...
}
// 拒绝创建某些内容的访问权限。
$user->access ^= User::ACCESS_CREATE;
补充
原文来自 clean-code-php,本文仅翻译后编辑 。
文章结构紧凑,层次分明,逻辑严密,让人一读即懂。
建议引入反面案例,增强辩证性。
?内容类评语?
作者的情感表达细腻入微,让人在阅读中找到了心灵的慰藉。