iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 8
0

主動察看名稱,自問「別人會怎麼解釋這些名稱?」
下面舉2個範例:

Filter()

假設需要撰寫處理資料庫查詢結果的程式:

result = Database.all_object.filter("year <= 2011")

結果會是什麼?

  • 所有year <= 2011的物件?
  • 所有year 不<= 2011物件?
    問題出在filter是個容易誤解的單子,無法判斷是「選取」或是「排除」,如果需要「選取」比較好的是select(),「排除」則是 「exclude」 較為適合。

Clip(text,length)

假設有個函數能剪下段落的內容:

#剪到 text 結尾,並加上 "..."
def Clip(text,length)
   ...

Clip()可能有2種解讀:

  • 從結尾刪除length長度
  • 切除尾端,只留下length長度的資料
    為了不讓閱讀程式的人有任何懷疑,可以改用更明確名稱Truncate(text,length)
    然而,length參數名稱也不合適,改為max_length會更清楚。

還沒完呢,max_length也有多種可能解釋:

  • 位元組數量
  • 字元數量
  • 單字數量

假設是「字元數量」,那麼將max_length改為max_char會更加清楚。

Reference

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

上一篇
富含資訊的名稱--利用名稱格式加入更多意義
下一篇
不被誤解的名稱--2
系列文
易讀程式之美學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言