创意术语

too*_*php 6 language-agnostic terminology

我似乎经常使用诸如节点,属性,孩子(等)等平淡无奇的单词,而且我担心其他人会因为部分的名称含糊不清而常常难以理解我的代码.

如何找到类和组件的创意名称,使它们更难忘?

我特别遇到通用工具的问题,除了它们相当通用的功能目的之外没有真正的描述.我想知道其他人是否找到了创造性的方法来命名,而不是简单地通过它们的实用程序命名它们,例如AnonymousFunctionWrapperCallerExecutorFactory.

Jör*_*tag 3

我确实没有答案,但有三件事供你思考。

\n\n
    \n
  1. 已故菲尔·卡尔顿(Phil Karlton)有句名言:“计算机科学中只有两个难题:缓存失效和命名事物。” 因此,你在想出好名字时遇到困难是完全正常的,甚至是意料之中的。
  2. \n
  3. OTOH,命名事物时遇到困难也可能是糟糕设计的标志。(是的,我完全清楚,#1 和 #2 是相互矛盾的。或者也许人们应该把它看作是相互平衡的。)例如,如果一件事有太多的责任,它几乎不可能出现起一个好名字。(见证糟糕的 OO 设计中的所有“Service”、“Util”、“Model”和“Manager”类。下面是 Google 代码搜索“ManagerFactoryFactory”的示例。)
  4. \n
  5. 此外,您的名字应该映射到主题专家使用的领域术语。如果您找不到主题专家,则表明您当前正在担心不应该担心的代码。(基本上,实现核心业务领域的代码应该得到很好的实现和设计,辅助领域的代码应该马马虎虎地实现和设计,所有其他代码根本不应该实现或设计,而是从供应商那里购买,其中你买的是他们的核心业务领域。[请自由地解释“购买”和“供应商”。社区开发的免费软件就可以。])
  6. \n
\n\n

关于上面的#3,您在另一条评论中提到您目前正在致力于实现树数据结构。除非您的公司从事销售树数据结构的业务,否则这不属于您的核心领域。您难以找到好名字的原因可能是您在核心领域之外工作。现在,“出售树数据结构”可能听起来很愚蠢,但实际上公司这样做。例如,Microsoft 开发部门内的 BCL 团队:他们实际上销售(无论如何,对于“销售”的某些定义).NET 框架的基类库,其中包括树数据结构等。但请注意,例如 Microsoft 的 C++ 编译器团队实际上(字面上)从第三方供应商购买了他们的STL\xc2\xa0\xe2\x80\x93 他们认为他们的核心领域是编写编译器,并且他们留下了编写一家将编写 STL 作为核心领域的公司的图书馆。(事实上​​,据我所知,该公司除了编写和销售 STL 实现之外什么也不做。这是他们唯一的产品。)

\n\n

但是,如果销售树数据结构您的核心领域,那么您列出的名称就可以了。它们是主题专家(在本例中为程序员)在谈论树数据结构领域时使用的名称。

\n