PHP 代码简洁之道

翻译 shanhuhai 723℃ 1评论

本文介绍了一个关于 编写高质量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 代码简洁之道

喜欢 (12)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 蛮好 谢谢分享
    小莫2017-09-08 08:35 回复