發布日期:Jul 1, 2021

文章於 Jul 6, 2021 更新

20210701

事件紀錄

(一)

關於命名的注意事項

  1. 相同概念不同類型的東西,命名時把差異字放在中間,要搜尋時比較容易精準

舉例:

【後綴式命名】

PRODUCT_TYPE_CODE_FRUIT
PRODUCT_TYPE_CODE_TOY
PRODUCT_TYPE_CODE_BOOK

搜尋時如果想找 PRODUCT_TYPE_CODE 系列的片段,會把所有產品種類的片段都標起來。

如果想要找特定某一類產品,則需要搜尋到產品種類的第一碼例如「PRODUCT_TYPE_CODE_T」

【穿插式命名】

PRODUCT_TYPE_FRUIT_CODE
PRODUCT_TYPE_TOY_CODE
PRODUCT_TYPE_BOOK_CODE

搜尋時以「PRODUCT_TYPE_T」搜尋即可。

筆記

兩種感覺差別不大,使用習慣的問題?

  1. function 命名時以動作為開頭,以成果為結尾,中間放能讓行為更具體的敘述:

e.g.

getEmployeeCollection()

取員工資料集,回傳 Collection 物件。 setChartTitle() 設定圖表標題,不見得會回傳材料,可能只回傳「是否設定成功」而已。 mapEmployeeDepartmentArray() 建立員工與部門的對照表,回傳 Array

  1. 用來判斷的參數寫清楚是判斷什麼的

$is_already_login $is_paid

  1. 有關聯的 function name 或變數之間要用一致的邏輯

getProductCollection() getExpiredProductCollection() getExpiredProductCollection() 會呼叫 getProductCollection() ,只是在呼叫時限縮範圍為已過期產品。

總結

1. 工作技能有沒有因此成長了?

好的命名能讓人真的用「閱讀意義」的方式去了解程式碼,對於維護會有很大的助益。

2. 計畫如何改善現況或者可以試著做得更好?

也許未來在開發專案時可以一邊收集紀錄專案內的命名邏輯範例,避免一時腦袋不清楚亂命名。

3. 如何在這件事上提升效率?

確立並內化一套命名規則。好處是可以減少命名上的遲疑時間,也能減少追溯變數源頭內容的時間。

4. 有沒有把時間花在刀口上?

命名邏輯的確立是有價值的投資。

關鍵字

  • 命名