iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 5
0
自我挑戰組

易讀程式之美學系列 第 5

富含資訊的名稱--在名稱中加入額外資訊

  • 分享至 

  • xImage
  •  

變數名稱就像是個簡短註解,如果有重要資料是要讓使用者知道,就值得在名稱中加上幾個額外字眼。

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等嚴重後果,這些屬性才顯得重要。

Reference

  • <<易讀程式之美學-提升程式碼可讀性的簡單法則 >>(The Art of Readable Code)

上一篇
富含資訊的名稱--優先使用具體名稱而非抽象名稱
下一篇
富含資訊的名稱--名稱該有多長
系列文
易讀程式之美學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言