成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

編寫整潔的 PHP 代碼

wupengyu / 1041人閱讀

摘要:簡(jiǎn)評(píng),是基于羅伯特馬丁的經(jīng)典編程書(shū)籍代碼整潔之道的適用版本,并不是一個(gè)風(fēng)格指南,而是在中編寫可讀可重用和可重構(gòu)的軟件的指南。當(dāng)函數(shù)做的事多于一件事情時(shí),他們更難編寫和測(cè)試。這是面向?qū)ο蟮脑O(shè)計(jì)原則中的開(kāi)放封閉原則的一部分。

簡(jiǎn)評(píng): Clean Code PHP,是基于羅伯特·馬丁的經(jīng)典編程書(shū)籍 ——「代碼整潔之道」的 PHP 適用版本,并不是一個(gè)風(fēng)格指南,而是在
PHP 中編寫可讀、可重用和可重構(gòu)的軟件的指南。當(dāng)然切忌機(jī)械地遵循這里的原則。

不添加不需要的上下文

如果你的類名或?qū)ο竺Q有具體的含義,請(qǐng)不要重復(fù)該變量的名稱。
差:


好:


函數(shù)參數(shù)數(shù)量(理想情況是 2 個(gè)以下)

限制函數(shù)參數(shù)的數(shù)量是非常重要的,因?yàn)樗尯瘮?shù)更容易測(cè)試,參數(shù)超過(guò)三個(gè)的話,你必須用每個(gè)多帶帶的參數(shù)測(cè)試大量不同的情況。

無(wú)參數(shù)是理想的情況。一個(gè)或兩個(gè)參數(shù)是可以的,但應(yīng)該避免三個(gè)。通常,如果你有兩個(gè)以上的參數(shù),那么你的函數(shù)試圖完成太多的功能,若不是,大多數(shù)時(shí)候,較高級(jí)的對(duì)象就足以作為參數(shù)(譯者注:比如數(shù)組、對(duì)象)。

差:


好:

title = "Foo";
$config->body = "Bar";
$config->buttonText = "Baz";
$config->cancellable = true;

function createMenu(MenuConfig $config) {
    // ...
}

一個(gè)函數(shù)應(yīng)該只完成一件事

這是軟件工程中最重要的規(guī)則。當(dāng)函數(shù)做的事多于一件事情時(shí),他們更難編寫和測(cè)試。 當(dāng)你可以將函數(shù)隔離成一個(gè)動(dòng)作時(shí),可以輕松重構(gòu),代碼也將更易讀。

差:

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();
}

使用 get 和 set 方法

在 PHP 中,可以為方法設(shè)置 public、protected 和 private 關(guān)鍵字,可以控制對(duì)象上的屬性可見(jiàn)性。這是面向?qū)ο蟮脑O(shè)計(jì)原則中的開(kāi)放/封閉原則的一部分。

差:

class BankAccount
{
    public $balance = 1000;
}

$bankAccount = new BankAccount();

// Buy shoes...
$bankAccount->balance -= 100;

好:

class BankAccount
{
    private $balance;

    public function __construct($balance = 1000)
    {
      $this->balance = $balance;
    }

    public function withdrawBalance($amount)
    {
        if ($amount > $this->balance) {
            throw new Exception("Amount greater than available balance.");
        }

        $this->balance -= $amount;
    }

    public function depositBalance($amount)
    {
        $this->balance += $amount;
    }

    public function getBalance()
    {
        return $this->balance;
    }
}

$bankAccount = new BankAccount();

// Buy shoes...
$bankAccount->withdrawBalance($shoesPrice);

// Get balance
$balance = $bankAccount->getBalance();

原文:Clean Code Concepts Adapted for PHP

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30611.html

相關(guān)文章

  • 后端好書(shū)閱讀與推薦(續(xù))

    摘要:續(xù)前文后端好書(shū)閱讀與推薦,幾十天過(guò)去了,又看了兩本好書(shū)還有以前看過(guò)的書(shū),這里依然把它們總結(jié)歸納一下,加入一些自己的看法有用的鏈接和可能的延伸閱讀,并推薦給需要的同學(xué)。 續(xù)前文 后端好書(shū)閱讀與推薦 - Mageek`s Wonderland ,幾十天過(guò)去了,又看了兩本好書(shū)(還有以前看過(guò)的書(shū)),這里依然把它們總結(jié)歸納一下,加入一些自己的看法、有用的鏈接和可能的延伸閱讀,并推薦給需要的同學(xué)。...

    劉福 評(píng)論0 收藏0
  • 后端好書(shū)閱讀與推薦(續(xù))

    摘要:續(xù)前文后端好書(shū)閱讀與推薦,幾十天過(guò)去了,又看了兩本好書(shū)還有以前看過(guò)的書(shū),這里依然把它們總結(jié)歸納一下,加入一些自己的看法有用的鏈接和可能的延伸閱讀,并推薦給需要的同學(xué)。 續(xù)前文 后端好書(shū)閱讀與推薦 - Mageek`s Wonderland ,幾十天過(guò)去了,又看了兩本好書(shū)(還有以前看過(guò)的書(shū)),這里依然把它們總結(jié)歸納一下,加入一些自己的看法、有用的鏈接和可能的延伸閱讀,并推薦給需要的同學(xué)。...

    OnlyLing 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<