第十屆

self
易讀程式之美學
mark9462

系列文章

DAY 1

程式碼應該易於理解

可讀性基本定理 這是什麼意思?很簡單,找個一般能力的同事,測量他們理解程式碼需要的時間,這就是撰寫程式時希望縮短的理論值。「理解」的要求非常高,完全理解程式碼,...

DAY 2

富含資訊的名稱--選擇辭彙

選擇明確且避免「空洞」辭彙,是「富含資訊名稱」的重要原則。以下範例中的「get」就不夠明確: def GetPage(url): 「get」並沒有表達太多資訊...

DAY 3

富含資訊的名稱--名稱該有多長

最好依變數的使用方式有所不同,但以下原則有助於讀者決定。 較小的範圍適合用較短的名稱 if (debug){ map<string,int> m;...

DAY 4

富含資訊的名稱--避免通用性名稱

tmp、retval或是foo之類的名稱式「懶的想個適當名字」的藉口,應該要「選個能夠說明實體數值或目的的名稱」。以JavaScript用了retval的函數為...

DAY 5

富含資訊的名稱--利用名稱格式加入更多意義

底線、破折號以及大寫等方式都能夠在名稱加入額外資訊。 static const int kMaOpenFile = 100; class LogReader{...

DAY 6

富含資訊的名稱--優先使用具體名稱而非抽象名稱

假設有個稱為ServerCanStart()的內部方法,作用是檢查伺服器是否能夠傾聽指定的TCP/IP通訊埠,那這樣名稱就太過抽象,具體的名稱可以是直接描述方法...

DAY 7

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

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

DAY 8

不被誤解的名稱--1

主動察看名稱,自問「別人會怎麼解釋這些名稱?」下面舉2個範例: Filter() 假設需要撰寫處理資料庫查詢結果的程式: result = Database.a...

DAY 9

不被誤解的名稱--2

包含邊界的極值優先使用 min 與 max 假設有個購物車應用程式只允許使用者一次購買十個商品: CART_TOO_BIG_LIMIT = 10 if sho...

DAY 10

不被誤解的名稱--3

布林值名稱 以下是危險的例子: bool read_password = true; 根據讀法,有2種完全不同的解讀方式: 「需要」讀取密碼 密碼「已經」讀...