提供示例
一個具體的示例抵得上一段描述。如果你想要某種特定形狀的輸出,就把那個形狀給它看。這是消除歧義最快的方法。
把資料格式化得漂亮些。
把這個使用者陣列轉換成一個彙總物件。
輸入:
[{ name: "Ann", role: "admin" }, { name: "Bo", role: "user" }]
期望輸出:
{ total: 2, byRole: { admin: ["Ann"], user: ["Bo"] } }
寫出轉換函式,以及一個與該示例匹配的測試。
示例釘死了命名、結構和大小寫——這些光靠文字會留得模糊不清。當你能做到時,把示例作為一個測試包含進去——這樣"讓這個測試通過"就成了一條沒有歧義的指令。這個套路可以推廣:一份樣例 (應用程式程式設計介面 —— 一個程式向另一個程式請求資料的方式)響應釘死一個解析器,一對"改前/改後"釘死一次重構,一張截圖或 ASCII 草圖釘死一個佈局。每當你發現自己正在寫一長段對某個形狀的描述時,停下來,改為給它看那個形狀的一個例項。