對於某些變量,附加額外的信息能夠讓人更好的理解,好比,一個16進制的變量,顯然 hex_id 要比 id 更爲貼切html
string id; // Example: "af84ef845cd8" string hex_id;
下面的 JavaScript 代碼,乍看沒有任何問題,但實際上 getTime() 返回值的單位是 ms 而不是 sapi
var start = (new Date()).getTime(); // top of the page ... var elapsed = (new Date()).getTime() - start; // bottom of the page document.writeln("Load time was: " + elapsed + " seconds");
將 _ms 做爲後綴加到變量的後面,則會使代碼變得更爲清晰安全
var start_ms = (new Date()).getTime(); // top of the page ... var elapsed_ms = (new Date()).getTime() - start_ms; // bottom of the page document.writeln("Load time was: " + elapsed_ms / 1000 + " seconds");
除了時間之外,還有一些別的單位以下表所示:ide
Fucntion parameter | Renaming parameter to encode units |
Start (int delay) | delay -> delay_secs |
CreateCache (int size) | size -> size_mb |
ThrottleDownload(float limit) | limit -> max_kbps |
Rotate (float angle) | angle -> degrees_cw |
如上述漫畫所示,一些有關安全的變量命名,也經常須要一些額外的信息函數
Situation | Variable name | Better name |
A password is in "plaintext" and should be encrypted before further processing | password | plaintext_passord |
A user-provided comment that needs escaping before being displayed | comment | unescaped_comment |
Byte of html have been converted to UTF-8 | html | html_utf8 |
Incoing data has been "url encoded" | data | data_urlenc |
變量 m 並無封裝任何信息,可是由於只在 if 做用域內有效,因此並不對妨礙代碼的理解oop
if (debug) { map<string,int> m; LookUpNamesNumbers(&m); Print(m); }
當變量名實在太長時,可考慮縮寫,其使用原則就是:新加入的團隊成員,也可以理解該縮寫的意思 ui
例如,evaluation 常縮寫爲 eval,document 可縮寫爲 doc,string 縮寫爲 strlua
好比,ToString() 優於 ConvertToString(),ServeLoop() 也比 DoServeLoop() 簡潔url
在谷歌 C++ Style Guide 中,成員變量名字後面都帶有下劃線 "_";常量的命名形式爲 kConstantName,以便和 #define MACRO_NAME 宏區分開來;類名通常是各個首字母大寫,一樣成員函數名也是如此spa
static const int kMaxOpenFiles = 100; class LogReader { public: void OpenFile(string local_file); private: int offset_; DISALLOW_COPY_AND_ASSIGN(LogReader); };