第二章 - 有意義的命名 - 讀書心得

1. 讓代碼會說話。

- C/C++, python, Java...各種不同層次的編程語言,我首先強調“語言”這兩個字。

- 編程語言和我們日常交流用於其實並沒有實質性的區別。都是一種表達方式。

- 好的程序寫出來也需要像日常交流一樣能夠正確清晰的表達自己。

2. 名副其實

- 何爲名副其實,簡單來說就是寫的和做的一樣。

- 如果一個變量/函數定義出來之後仍然需要加額外的註釋去註解。那麼顯然這個命名是失敗的。

3. 避免誤導, 有意義的命名,命名出來的名字可讀

4. 有意義的命名區分

①命名有很多,如何區分不同的命名?

- 1. 不要用簡單添加數字(a1, a2)來區分變量

- 2. 不要使用Info, Information這樣的意義想同或相近的詞來區別

- 3.不要在變量名中加入不必要的信息(e.g. val, arr, i... 做前綴或者後綴)

- ...

②如何來避免命名的重複

C++中

- 1. 合理使用namespace

- 2. 更高層次的抽象

- 3. 重載,重寫...

- 4. 類中的私有函數

5. 其他規則

- 命名要可以讀出來

- 命名要可以索引

- 不要在命名中使用編碼

- 前綴(這裏:鮑勃大叔不推薦前綴,但是我認爲有些前綴還是值得用的,例如成員變量m_xxx,全局變量g_xxx)

- 類的命名(這裏:鮑勃大叔不推薦前綴,個人感覺類名定義成CXXX,接口定義成IXXX比較舒服)

- 類名應該是名詞或者名詞性短語,避免使用Manager,Processor,Data,Info這樣的類名

- 方法名爲動詞和動詞短語(E.g.  對鏈表操作,NodeInsert 和InsertNode雖然都能正確理解,但是動詞+名詞更符合英語語法,更合適)

- 每種概念對應於一個詞,不要出現fetch,get,retrieve...相同含義的詞語混用

- 別用雙關語,命名語意要明確清晰,不要給人不同的解讀

- 採用代碼所涉及領域的專有名稱

- 適當增加一些有意義的語境做爲前綴,(e.g. 我們會在一些配置參數前加radXXX,會在資源參數前加rrmXXX),當然這隻能適當添加


最近做了坑爹的中文聽力和閱讀理解,12到選擇題(答案只有:對,錯和不確定),結果只對了一半。

當中挖坑之處不少,讀一句都要細細揣摩。

做完之後,感概萬千,溝通交流切記語意明確,涵義清晰。寫代碼也一樣。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章