Coding Style,可以翻作程式碼風格
之所以在進階篇的頭篇來作介紹,除了難度之外有以下幾點
Coding Style有一定要遵循嗎?
嚴格來說沒有,如果對於你來說程式只要能跑就可以,那當然可以
但上面也提到了,你如果不是老闆、主管,終究會和人合作
現在有一定架構的團隊,基本上都會要求遵循既有的Coding Style
Laravel 遵循 PHP-FIG(PHP Framework Interoperability Group)制定的 PSR(PHP Standard Recommendations)標準,特別是 PSR-1、PSR-2 和 PSR-4。這些標準涵蓋了命名空間、類名、方法名、文件和目錄結構等方面的建議。遵循這些標準有助於保持代碼的一致性。
K&R 函數名和花括號單獨一行:
function a()
{
// 函數內容
}
Allman 函數名和花括號同一行:
function a() {
// 函數內容
}
Laravel 通常使用此來命名類、方法、變數和路由。意思就是變數和方法名應該以小寫字母開始,並使用大寫字母來分隔單詞,例如 $userName 或 getUsersList()。
而跟駝峰常來比較的就是蛇式命名法(snake_case),其命名方式就是$user_name
不說別的,Mysql的表名、欄位名稱,通常是以蛇式命名
變數命名除了駝峰式之外,一般希望有它的意義
如: Request $request、$startTime
而不是 $r、$sT、$x、$y
說到$x、$y想到foreach
foreach($posts as $key => $value){
}
上面這個寫法,筆者覺得是可以,給初學者,可以知道$key代表鍵、$value代表值
但筆者覺得也可以寫成
foreach($posts as $key => $post){
}
使用有意義的註釋來解釋代碼的目的和操作。在函數、類和方法的開頭,通常使用 PHPDoc 風格的注釋,描述參數、返回類型和方法的目的。文件頂部通常包括版權信息、作者和描述。
如:
// dd('測試');
// or
// $test = ['a' => 'aaa', 'b' => 'bbb'];
// return $test;
// or
// 先過濾參數、打API、回傳format存入資料庫
最後一行取決個人與團隊,這種比較偏向規劃程式碼寫法,筆者是會刪掉,下面會示範筆者認為註解寫法
/**
* 這寫上該function描述
* @param \Illuminate\Database\Eloquent\Model|string $table
* @param array $data
* @param string|null $connection
* @param string|null $deletedAtColumn
* @return array<int, string|null>
*/
public function hosts($table, array $data = [], $connection = null, $deletedAtColumn = 'deleted_at'): array
{
return [
$this->allSubdomainsOfApplicationUrl(),
];
}
具備描述、傳入&回傳參數、以及回傳型態(: array)
// 創建一個包含用戶名的集合
$users = new Collection(['user1', 'user2', 'user3']);
// 使用 map 函數將用戶名轉換為大寫
$usersUpperCase = $users->map(function ($userName) {
return strtoupper($userName);
});
取決與團隊,現在及未來會不會有不會中文的同事,一般筆者偏向寫英文,比較沒有問題
其實除了基本的Coding Style,主要還是看團隊
當然如果你覺得現在團隊寫的有問題,(也許)可以進行討論
一起寫出令人愉悅的程式碼吧!