文章同步於blog
第三天就要來個硬的
這次將要介紹Clean Code
之後會依序介紹Clean Coder以及Clean Architecture
Clean Code這本書我相信很多公司都有擺著當精神象徵
這個主題過去也有人介紹過,這次會從裡面的案例去做延伸探討
而且每個人看過的想法也不太一樣
書中Java的範例我就不多做說明了,因為我不會寫Java
如果沒有讀過這本書的朋友,尤其是新手或是Coding Style不太好的,強烈建議看過這本書
他會對日後的你非常有幫助
今天我們先從第一章節到第五章吧(迷之音: 我有點擔心我講太多…
第二章到第五章分別是
這些單元會放在一起講解
我們先有一個共識:
程式碼品質是確實會影響維護以及開發效率的
舉個例子:
class User
{
private $name;
public function __construct($name)
{
$this->name = $name;
}
public function connect()
{
return "Success to connect server, welcome" . $this->name;
}
}
上面這些最明顯有問題的就是命名
***Explicit is better than implicit.
意旨明瞭的程式碼(user_name, connectServer)比隱晦(name, connect)的還要好***
我相信很多人都體驗過,明明一個幾分鐘的事情,卻因為架構、程式碼太髒亂而多花了很多時間
很多人(我一開始也是)都會抱怨說,阿誰誰誰一直修改怎樣怎樣的
但這件事情本身就沒有錯,因為人會一直改變,他們的需求也是
為什麼我們的架構沒辦法改變,或是做得更有彈性一點,來因應這些需求
程式碼必須持續地保持整潔,這個原則不會因為時間而被改變
美國童子軍有一個簡單的規則
離開營地前,讓營地比使用前更加乾淨。
- Clean code(p.16)
也就是說我們每次在撰寫程式碼時,必須保持乾淨整潔。
我們掌握幾個原則
addTwoNumber
class StudentController extends Controller
{
private $someFormater;
public function __construct($someFormater)
{
$this->someFormater = $someFormater;
}
public function createStudent(Request $request)
{
$newStudent = Student::create([
'student_name' => $request->student_name,
'student_email' => $request->student_email]);
return response()->json($this->someFormater($newStudent), 201);
}
}
我們最需要在函式上注意的就是兩點:
我們舉個MVC框架最常遇到的問題,Controller已經大包到幾百幾千行去了
此時我們就可以把Controller裡面的各種功能拆給其他function去執行
保持Controller的整潔
這一部分在我認為,其實最好的註解就是程式碼,也就是說,你的程式碼可以讓人一看就懂,那註解就會顯得有些多餘。
我們就舉例書中需要寫註解的情況吧
簡單來說就是程式的排版
例如:等號之間空格、上下間距等等
另外盡量讓變數靠近使用的地方被宣告,但因為函示非常簡短的關係,所以都會在最上方做宣告
只能說Clean Code這本書要在三天內講完,真的太困難了,只能提取其中的一部分來說明
強烈建議沒有看的人去買一本來看
明天繼續講其他章節
希望我這三天內可以盡可能地講完
其實我們就盡可能地掌握幾兩個原則,就是讓人一看就懂跟看得舒服
掌握這兩個原則就不太會有寫出髒扣的問題了
Clean Code(ch.2 ~ 5)