iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 10
0

布林值名稱

以下是危險的例子:

bool read_password = true;

根據讀法,有2種完全不同的解讀方式:

  • 「需要」讀取密碼
  • 密碼「已經」讀取了

在這情況下,避免使用「read」,改為need_passwor或是user_is_authenticated

一般來說加上iscanshould可以讓布林值意義更加明確。
ex:名為SpaceLeft()的函數看起來像是會傳回數值,如過傳回是布林值,改為HasSpaceLeft()
會比較適當。

最後,最好避免在名稱中使用否定敘述:

bool disable_ssl = false;

改用:

bool use_ssl = true;

會較容易閱讀,也較簡短。

符合使用者的預期

有些名稱即使已經很明確的表達意圖,使用者的成見仍然可能造成誤解,這種情況下,最好「讓步」改成其他不會誤導使用者的辭彙。

public class StatisticsCollector{
   public addSample(double x){...}
   public double getMean(){
   // 加總所有樣本,並傳回總和/樣本數
   }
}

程式中getMean在資料量大時會耗用大量資源,大依賴慣例的程式設計師只是會單純的存取子,隨意的呼叫getMean(),這時應該改為computeMean(),看起來就像是會耗費較多資源。

Reference

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

上一篇
不被誤解的名稱--2
下一篇
美學--1
系列文
易讀程式之美學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言