一、前言
這篇文章將會簡單介紹無瑕的程式碼(Clean Code)是一種什麼樣的程式設計流派,並且分享以及命名相關的概念。
1. 終於有時間閱讀
忙碌的生活讓我始終沒有機會讀書,應該說我一直不停的在開發專案,撰寫企劃書、撰寫學校的企劃書、撰寫研究室的企劃書,相較於我原本認為自己應該走向程式的自己,我現在更像是一位遊戲企劃。
2. 閱讀到第二章
我依然覺得程式很重要,他能協助我處理很多東西,從人生思維到解決問題的能力,潛移默化的讓我成長了很多,也讓我在遊戲設計的領域站穩了腳根,我自己也很喜歡寫程式...除了Debug。
3. 是一本很有用的書
我決定在這個清明連假把這一本書讀完,哪怕不精或有遺忘,我也能對這份知識有一定的理解,讀書跟學習都有很多方法,我打算都嘗試看看,這本書能帶給我很多知識,讀完後我也打算在實際寫程式的時候運用它。
二、Clean Code
這本書出自於某一位程式設計的大師,他為程式設計建立了一個程式設計的流派,Clean Code 對每一位程式設計師的意義都不盡相同,對某些人來說,這是維護、命名的準則,對某些人來說,則是程式開發的架構與雛形。
1. 簡潔
這本書最為著名的就是簡潔,簡單扼要的程式邏輯、清楚易懂的程式設計知識與架構,這是它廣為流傳的核心守則,這本書不會實際教導如何寫程式,它會把寫程式要注意、要避免的事情一步步告訴設計師。
2. 直覺
其中最重要的一件事情,是Clean Code 強調程式是一種語言,因此在撰寫裡面的每一個字都要設計與思考,就像寫一本書一樣,要能讓人一看就懂,不需要經過轉化或推測,能很直覺的就理解程式碼的內容,因此也容易維護。
3. 零重複
它的一項特徵是程式碼不會有重複的內容,同一功能的程式寫完之後就不用再撰寫第二次,能讓程式碼的數量大為減少,重複利用的同時依然保持單一職責的設計模式。
三、程式碼的命名
那接下來我分享一寫我看到後,有印象的一些知識。
1. 有意義的名稱
給我程式設計習慣改變最大的一章,就是在講述變數與函式的命名方式,也就是表達的功能大於字數的精簡,不要為了省字數而縮短名稱,應該讓名稱描述的越精準越重要。
2. 明確描述功能的名稱
如何描述明確也式裡面提到很讓我印象深刻的內容,這本書的做法會讓讀程式碼的過程就像是在閱讀一本書,裡面很多字詞與句子,而不是那種晦澀不明的代號與代碼。
3. 避免代號與裝可愛
提到代號,Clean Code 還提到要避免使用「a=1」這種內容,這樣設計師就會去思考a是什麼,也不要把變數與函式命名為「SuperCoolFloat」這種具有情緒與玩笑的字詞,未來回首會發現自己一個字都看不懂。
4. 避免雙關
在撰寫程式碼的同時,要避免那些具有雙關含意的單字,或者說在使用的時候要避免你形容的是另一件事情,這部分我就不太理解,所以不多做解釋,我對雙關的理解,其實就是命名的時候要精確,不要讓人誤會。
5. 定義好相同含意的詞彙
在英文語句中,有很多具有相同意義的詞彙,譬如「add」、「increase」這兩個單字都有增加的意思,如果你會需要讓撰寫具有相近概念的兩個函式,那使用相同的程式名稱會是比較好的做法。
四、後記
閱讀這本書讓我獲得不少體悟,說一個實在話,這個清明連假我除了打遊戲以外,我很多時候都想到這本書,我決定趁這段時間空閒比較多,認真讀一讀這本書,並且認真撰寫自己的幾個遊戲專案。