【问题标题】:What antipattern does this common programming mistake fall under这个常见的编程错误属于什么反模式
【发布时间】:2012-01-04 03:58:35
【问题描述】:

对于一个编程项目,

假设程序员在很多地方对类似风格的函数进行了不同的命名,例如...

int ask_bro_4_data();

另一个是

int ask_mom_for_data();

这代表什么反模式?本质上,是缺乏标准化,对吧?如,一个函数用for,另一个用4。

类似地,程序员可能会以某种与其使用相关的方式命名变量,但在每种情况下都未能这样做,或者以非标准化的方式这样做。这使得在大型代码库中搜索这些变量变得更加困难,因为它们可能不遵循您假设的命名条件。

有什么想法吗?对不起,这个模棱两可的名字,但我不知道这个问题的标签是什么。

【问题讨论】:

  • 我认为这根本不是反模式。反模式最初似乎是个好主意。我认为没有人会真正看到这个,想一想,然后认为这是一个好主意。在我看来,这似乎只是缺乏思考/考虑。
  • @JerryCoffin 我认为这是一个反[attern。最初的好想法==“好吧,让我们尽快写下来,以后担心命名约定。不需要寻找我之前是怎么写的,继续跋涉”这是一种组织或管理的反模式
  • 我仍然不同意。即使看管理层,我怀疑是否有人看过这个并认为这是一个好主意。从我所看到的情况来看,通常他们认为这是可用的邪恶中最少的,或者只是没有考虑他们决定的后果。如果你真的坚持把它当成一种“反模式”,正确的标题可能是“短视”。
  • @JerryCoffin 最好不要没有命名约定。 “好主意”是让我们尽快把它赶出去,我们需要尽快把它推向市场”。命名约定问题,除其他外,是该管理反模式的负面影响。为问题的措辞道歉奇怪...
  • 我同意这不是反模式。反对编码标准,是的。但绝对不是反模式。

标签: naming-conventions terminology anti-patterns


【解决方案1】:

这更像是一种语法约定,而不是一种模式。

为了提高可维护性,英语会引导我们使用单词而不是数字。但是,根据您的同行群体,约定可能会有很大差异。

设计模式将被视为旨在解决特定上下文引入的常见问题的解决方案。

例如;我想确保我的应用程序只能访问给定类的同一个实例。解决这个问题的基本模式是单例。

如果解决方案带来的问题多于解决的问题;那么它就变成了一个反模式。

在这个例子中;单例很难进行单元测试;所以这就是为什么许多人认为它是一种反模式的原因之一。

【讨论】:

  • 单例是一种反模式
  • 是的,但它仍然是一种组织/管理反模式,因为程序员认为系统的解决方案是尽快完成它并将其推出,而不是专注于命名约定的标准化。基本上,它属于 code-rush 管理不善的范畴。
  • 或者,至少,它是反模式的负面影响。我不知道那个反模式叫什么。
  • 命名过于主观,不能称为模式(或反模式)。模式意味着一个可重用的解决方案,只有在首先存在易于定义的问题时才能存在。
  • @PaulFerguson 对不起,我的问题措辞不当,但如果您阅读我的评论,我会更清楚地表明我在说什么。反模式是一种思考过程,认为交付它比维护更重要,并且是一种反模式,因为将来管理系统的人需要追赶并偶然发现这些不一致和记录不充分的代码,以了解系统,如果从一开始就进行记录和标准化,它将变得更加容易和快捷
【解决方案2】:

反模式:稍后重命名

当程序员意识到他/她或她的同事在命名上不一致并决定以后做一些事情,或者根本不重要的事情。

这可以通过以下方式解决:

  • 团队明确指南,说明在尊重命名约定方面应努力实现的目标,
  • 认识到重构是一个持续的过程,与编码并行。
  • 简单的 IDE 命令 让用户在思考后提供哦,我们在这里使用“4”和“for”,这很令人不安 *Ctrl+R Ctrl+R* 啊这更好 *继续编码。*

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-02
    • 2011-07-16
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多