国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP代碼簡(jiǎn)潔之道——變量部分

mgckid / 2674人閱讀

摘要:將代碼寫(xiě)的簡(jiǎn)潔并且易讀易懂是每一位優(yōu)秀的所應(yīng)該具備的基本功。前幾天在上看到這個(gè)項(xiàng)目,感覺(jué)很有收獲,于是在這里記錄一下。

將代碼寫(xiě)的簡(jiǎn)潔并且易讀易懂是每一位優(yōu)秀的coder所應(yīng)該具備的基本功。

前幾天在github上看到clean-code-php這個(gè)項(xiàng)目,感覺(jué)很有收獲,于是在這里記錄一下。

使用有意義并且可讀的變量名稱

Bad:

$ymdstr = $moment->format("y-m-d");

Good:

$currentDate = $moment->format("y-m-d");
對(duì)同一只類(lèi)型的變量使用同樣的詞匯

Bad:

getUserInfo();
getUserData();
getUserRecord();
getUserProfile();

Good:

getUser();
使用易于查找的命名

Bad:

// 這里的4是什么鬼??
if ($user->access & 4) {
    // ...
}

Good:

class User
{
    const ACCESS_READ = 1;
    const ACCESS_CREATE = 2;
    const ACCESS_UPDATE = 4;
    const ACCESS_DELETE = 8;
}

if ($user->access & User::ACCESS_UPDATE) {
    // do edit ...
}
不要讓讀者猜

Bad:

$l = ["Austin", "New York", "San Francisco"];

for ($i = 0; $i < count($l); $i++) {
    $li = $l[$i];
    doStuff();
    doSomeOtherStuff();
    // ...
    // ...
    // ...
    // $li 變量代表什么???
    dispatch($li);
}

Good:

$locations = ["Austin", "New York", "San Francisco"];

foreach ($locations as $location) {
    doStuff();
    doSomeOtherStuff();
    // ...
    // ...
    // ...
    dispatch($location);
}
避免過(guò)深的嵌套

Bad:

function isShopOpen($day)
{
    if ($day) {
        if (is_string($day)) {
            $day = strtolower($day);
            if ($day === "friday") {
                return true;
            } elseif ($day === "saturday") {
                return true;
            } elseif ($day === "sunday") {
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    } else {
        return false;
    }
}

Good:

function isShopOpen($day)
{
    if (empty($day) && ! is_string($day)) {
        return false;
    }

    $openingDays = [
        "friday", "saturday", "sunday"
    ];

    return in_array(strtolower($day), $openingDays);
}

Bad:

function fibonacci($n)
{
    if ($n < 50) {
        if ($n !== 0) {
            if ($n !== 1) {
                return fibonacci($n - 1) + fibonacci($n - 2);
            } else {
                return 1;
            }
        } else {
            return 0;
        }
    } else {
        return "Not supported";
    }
}

Good:

function fibonacci($n)
{
    if ($n === 0) {
        return 0;
    }

    if ($n === 1) {
        return 1;
    }

    if ($n > 50) {
        return "Not supported";
    }

    return fibonacci($n - 1) + fibonacci($n - 2);
}
不要添加不必要的上下文

如果你的類(lèi)/對(duì)象已經(jīng)說(shuō)明了一些信息,不要在你的變量名和屬性里重復(fù)

Bad:

class Car
{
    public $carMake;
    public $carModel;
    public $carColor;

    //...
}

Good:

class Car
{
    public $make;
    public $model;
    public $color;

    //...
}
參數(shù)初始化時(shí)設(shè)置默認(rèn)值
function create($name = null)
{
    $newName = $name ?: "ABC";
    // ...
}

設(shè)置默認(rèn)值一個(gè)比較明顯的好處是,當(dāng)對(duì)一個(gè)較早之前已經(jīng)定義好的函數(shù)添加參數(shù)時(shí),將新增的參數(shù)設(shè)置默認(rèn)值可以省得去修改以前使用該函數(shù)的地方。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/25935.html

相關(guān)文章

  • PHP代碼簡(jiǎn)潔之道——函數(shù)部分

    摘要:超過(guò)三個(gè)參數(shù)會(huì)導(dǎo)致參數(shù)之間的組合過(guò)多,你必須對(duì)每個(gè)單獨(dú)的參數(shù)測(cè)試大量不同的情況。拆分這些函數(shù),可以讓代碼可重用性更高且更易測(cè)試。 函數(shù)參數(shù)不要超過(guò)兩個(gè) 限制函數(shù)的參數(shù)數(shù)量是非常重要的,因?yàn)樗鼓愕暮瘮?shù)更容易測(cè)試。超過(guò)三個(gè)參數(shù)會(huì)導(dǎo)致參數(shù)之間的組合過(guò)多,你必須對(duì)每個(gè)單獨(dú)的參數(shù)測(cè)試大量不同的情況。 沒(méi)有參數(shù)是最理想的情況,一個(gè)或兩個(gè)參數(shù)是可以接受的,三個(gè)以上則是應(yīng)該避免的。這很重要的。如果你...

    crossoverJie 評(píng)論0 收藏0
  • PHP 代碼規(guī)范簡(jiǎn)潔之道

    摘要:統(tǒng)一的編碼規(guī)范編碼規(guī)范往簡(jiǎn)單說(shuō)其實(shí)就是三個(gè)方面換行空格變量命名放在里面,還有一些附加的地方,比如關(guān)鍵字大小寫(xiě),語(yǔ)法糖的使用與等的問(wèn)題。這些都是規(guī)范代碼的重要手段。推廣給你的隊(duì)友團(tuán)隊(duì)項(xiàng)目中,隊(duì)友的配合對(duì)整個(gè)代碼的規(guī)范起著決定性的作用。 1. 統(tǒng)一的編碼規(guī)范 編碼規(guī)范往簡(jiǎn)單說(shuō)其實(shí)就是三個(gè)方面: 換行 空格 變量命名 放在 PHP 里面,還有一些附加的地方,比如關(guān)鍵字大小寫(xiě),語(yǔ)法糖的使用...

    BearyChat 評(píng)論0 收藏0
  • PHP代碼簡(jiǎn)潔之道——類(lèi)和對(duì)象部分

    摘要:使用和在中,通過(guò)為屬性或方法設(shè)置和關(guān)鍵字可以實(shí)現(xiàn)對(duì)屬性或方法的可見(jiàn)性控制。你的繼承表達(dá)了一個(gè)對(duì)等比如人類(lèi)是動(dòng)物的關(guān)系,不是包含的關(guān)系比如用戶具有用戶詳情你能從基類(lèi)中復(fù)用代碼你想通過(guò)修改全局類(lèi)來(lái)對(duì)所有派生類(lèi)進(jìn)行修改。 使用getter和setter 在 PHP 中,通過(guò)為屬性或方法設(shè)置 public, protected 和 private 關(guān)鍵字可以實(shí)現(xiàn)對(duì)屬性或方法的可見(jiàn)性控制。不過(guò),...

    cyixlq 評(píng)論0 收藏0
  • JavaScript 的簡(jiǎn)潔之道

    摘要:考慮到函數(shù)表示某種行為,函數(shù)名稱應(yīng)該是動(dòng)詞或短語(yǔ),用以說(shuō)明其背后的意圖以及參數(shù)的意圖。不好的方式好的方式使用條件簡(jiǎn)寫(xiě)。這可能微不足道,但值得一提。 為了保證可讀性,本文采用的音譯而非直意。 簡(jiǎn)介 如果你關(guān)注代碼本身和代碼的編寫(xiě)方式,而不是只關(guān)心它是否能工作,那么你寫(xiě)代碼是有一定的水準(zhǔn)。專業(yè)開(kāi)發(fā)人員將為未來(lái)的自己和其他人編寫(xiě)代碼,而不僅僅只編寫(xiě)當(dāng)前能工作就行的代碼。 在此基礎(chǔ)上,簡(jiǎn)潔代碼...

    wudengzan 評(píng)論0 收藏0
  • PHP代碼簡(jiǎn)潔之道——SOLID原則

    摘要:是推薦的便于記憶的首字母簡(jiǎn)寫(xiě),它代表了命名的最重要的五個(gè)面對(duì)對(duì)象編碼設(shè)計(jì)原則單一職責(zé)原則開(kāi)閉原則里氏替換原則接口隔離原則依賴反轉(zhuǎn)原則單一職責(zé)原則修改一個(gè)類(lèi)應(yīng)該只為一個(gè)理由。別寫(xiě)重復(fù)代碼這條原則大家應(yīng)該都是比較熟悉了。 SOLID 是Michael Feathers推薦的便于記憶的首字母簡(jiǎn)寫(xiě),它代表了Robert Martin命名的最重要的五個(gè)面對(duì)對(duì)象編碼設(shè)計(jì)原則 S: 單一職責(zé)原則 ...

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

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

0條評(píng)論

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