變數名稱就像是個簡短註解,如果有重要資料是要讓使用者知道,就值得在名稱中加上幾個額外字眼。
String id ; //範例"af84ef845cd8"
看出來id格式十分重要,可以變數取名為hex_id。
如果變數是某種度量(例如是時間或位元組),在變數名稱中加入單位可能有幫助。
以測量網頁載入時間的JavaScript程式碼:
var start = (new Date()).getTime(); //網頁最上方
...
var elapsed = (new Date()).getTime() - start; //網頁最下方
document.writeln("Load time was: " + elapsed + "seconds");
表面上看起來沒什麼問題,但無法如期般運作;原因在於getTime()傳回值是毫秒(milisecond)而非秒。
一旦在變數名稱加入_ms,就可以讓問題變得十分明顯:
var start_ms = (new Date()).getTime(); //網頁最上方
...
var elapsed_ms = (new Date()).getTime() - start_ms; //網頁最下方
document.writeln("Load time was: " + elapsed_ms/1000 + "seconds");
在名稱中加入額外資訊的技巧不僅止於包含單位的數值,任何有危險或容易誤會的變數都應該使用這個技巧。
情形 | 變數名稱 | 比較好的名稱 |
---|---|---|
以「本文」儲存的密碼,在後續處理前應該先加密 | password | plaintext_password |
使用者提供意見,顯示前需要編碼 | comment | unescaped_comment |
轉換成UTF-8編碼的html | html | html_utf8 |
做過url編碼的輸入資料 | data | data_urlenc |
不該將所有變數加上 unescaped_ 或_utf8等屬性,只有在誤解變數可能產生bug,特別是安全性bug等嚴重後果,這些屬性才顯得重要。