命名的問題,其實是一個滿難的問題。
我有一回跟一群在 fb 工作 Haskell programmer 在討論 programming language 。
( 我是 Clojure programmer )
我提出的論點是: function name should describe purpose, not implementation.
結果,Haskell programmer 說,「命名太難了,比 haskell 的型別還難,我寧願可
以隨便取一個名字,描述不清不楚的部分,就透過 haskell 的型別來講清楚。」
命名的 know how 有點長,我是看了一本 Element of Clojure 才學會。
https://www.coderbridge.com/@humorless/65f82c6ba7544965ab11fefc34150d81
另外,如果沿伸討論到函數的命名時,就會發現,其實寫函數也不是簡單的事,因為
你要同時做三件事,而且這三件事又彼此互相影響。
1. 你要想一個 abstraction 。
2. 你要為這個 abstraction 設計 implementation - 考慮效能、依賴注入、可測試性
3. 你要為這個 abstraction 想一個好的名字,來描述它的 purpose 。