命名的问题,其实是一个满难的问题。
我有一回跟一群在 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 。