從程式碼風格說起,更好的團隊協作

RryLee發表於2017-03-15

在多次 review 新同事程式碼時,不停的評論哪裡應該換行,哪裡應該加上一個空格等等,就會思考,這些事情難道不是一開始就預設會做好的嗎,我們 review 程式碼的時候應該全心力的去看程式碼邏輯,結構,檢查其中的疏漏,而不是被這些細節所影響。所以在每個新同事入職的第一天,團隊程式碼風格應該被瞭解。

好的程式碼風格讓人賞心悅目,今天在這裡和大家一起探討。

基礎

首先閱讀「PSR 規範」PSR-2 編碼風格規範瞭解基礎規範。後文主要是對其的一些補充。

namespace 以及 use 宣告

  • namespace 應該與 <?php 間有一行換行
  • use 按照長度從短到長排序
  • 全部名稱空間的類呼叫 use 申明代替 \
<?php

namespace App;

use App;
use App\Bar;
use App\Services\Baz;

class Foo
{
    App::run();
}

如果使用 sublime 作為文字編輯器,可以使用 PHP Companion 來引入名稱空間。配置 use_sort_length 為 true 就可以自動為 use 按長度排序了。其他編輯器或者 ide 應該可以找到類似外掛。

結構控制

if, elseif, else, foreach, while...

所有的 } 後必須有一行換行,{ 上面也應該有一行換行

<?php

start();

if (true) {
    //
}

end();

! 的使用

! 有一個空格

<?php

if (! $isTrue) {
    //
}

return ! empty($data);

try, catch

如果使用 php7.1 的話,有兩個或以上異常做相同的處理,需要使用新的語法結構

<?php

try {
    //
} catch (FirstException | SecondException $e) {
    //
}

PHP 函式

非類,介面,trait 的函式命名使用下劃線命名,且先呼叫 function_exists 檢視是否已經申明

<?php

if (! function_exists('code_style')) {
    function code_style() {
        //
    }
}

laravel 不同的地方

. 字串連線

. 左右兩邊都有空格

<?php

$coding = 'coding';

echo 'php ' . $coding . ' style';

供學習交流,有不同看法歡迎和我們討論,???,地址在 LingxiTeam/php_coding_style_guide

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章