本文介绍了一个关于 编写高质量PHP 代码指南的 github 项目 clean-code-php
以下是正文:
PHP 简洁代码之道 clean-code-php, 是基于 Clean Code: A Handbook of Agile Software Craftmanship(Clean Code: 敏捷软件开发工艺手册) 这本书做的指南,该书是 Bob Martin 叔叔写的关于如何编写可维护代码的经典书籍。
clean-code-php 指南的灵感来源于 Javascript 版本的 clean-code-javascript ,在其基础加上了 PHP 的特点。
以下是我最喜欢的 clean-code-php 仓库中的一些点:
不添加不必要的上下文
不好的:
<?php
class Car
{
public $carMake;
public $carModel;
public $carColor;
//...
}
好的:
<?php
class Car
{
public $make;
public $model;
public $color;
//...
}
函数参数(不要超过2个)
不好的:
<?php
function createMenu($title, $body, $buttonText, $cancellable) {
// ...
}
好的:
<?php
class MenuConfig
{
public $title;
public $body;
public $buttonText;
public $cancellable = false;
}
$config = new MenuConfig();
$config->title = 'Foo';
$config->body = 'Bar';
$config->buttonText = 'Baz';
$config->cancellable = true;
function createMenu(MenuConfig $config) {
// ...
}
一个函数只做一件事情
不好的:
<?php
function emailClients($clients) {
foreach ($clients as $client) {
$clientRecord = $db->find($client);
if ($clientRecord->isActive()) {
email($client);
}
}
}
好的:
function emailClients($clients) {
$activeClients = activeClients($clients);
array_walk($activeClients, 'email');
}
function activeClients($clients) {
return array_filter($clients, 'isClientActive');
}
function isClientActive($client) {
$clientRecord = $db->find($client);
return $clientRecord->isActive();
}
观点
项目作者概述了本指南的目的如下:
这里的原则并不是所有的都必须遵守,而且几乎只有少部分是被广泛认同的。它们只是一些指导方针,而不是其他,但是它们都是 Clean Code的作者集多年编纂而成的。
在一门动态语言(像 PHP或其他任何语言)领域中,某些开发者可能会不同意其中的某些(或者很多)概念和观点,但是我需要指出的是即使你对其中一些观点不认同,也不要将它们全盘否定掉。
学习更多关于简洁代码之道的内容
我强烈建议你阅读“Clean Code”这本书, 以更深入的了解指南中的演示的这些要点。 就这本书本身来说也是一个很好的读物,看的过程中还要做的就是要发现自己不好的代码,然后用这些指南中的观点去改进你的代码。
与“Clean code”相关的另一本好书是“The Clean Coder:: A Code of Conduct for Professional Programmers”(做一个简洁代码编写者:专业程序员的行为守则),它更关注于你——一个Coder。在我看来,对于任何经验水平的程序员来说这两本书都是必读的,通过读这些内容以提高他们的代码质量。
clean-code-php 项目的完整翻译在:
PHP 代码简洁之道(一)——变量部分
翻译至:https://laravel-news.com/clean-code-php-guide
转载请注明:大后端 » PHP 代码简洁之道