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到選擇題(答案只有:對,錯和不確定),結果只對了一半。
當中挖坑之處不少,讀一句都要細細揣摩。
做完之後,感概萬千,溝通交流切記語意明確,涵義清晰。寫代碼也一樣。