研究有一个标准的编码风格的优点(Research into Advantages of Having

2019-08-02 09:06发布

还有是否有任何研究或学习到什么是最好的编码约定/样式一对夫妇的#2的问题。 这不是这个问题是关于什么的。 这个问题是关于是否有研究是否有任何优势,提高生产率或其他积极的副作用有一个组织范围内的编码规范和风格的任何研究。

我有我自己对这个观点,这基本上是存在于具有地方标准等巨大的好处。 说实话,我一点也不在乎,我需要的,只要它是在所有的代码,我可能与工作保持一致,使用什么样的风格。

我只是想知道是否有背我的意见或否定他们的任何研究。

Answer 1:

已经有一些研究表明,一个严格遵守一致的视觉风格可以帮助有经验的程序员更保持在内存中的局部问题,而不必记住问题的各个元素。

一致的编码风格艾滋病组块

它与人类的记忆是如何工作要做。 这就是所谓的分块 。 例如,它是一个充分研究的现象, 国际象棋大师都在记忆比人谁不熟悉盘棋位置要好得多 。 但是,只有当出现在可能发生在一个正常的游戏“自然位置”的作品。 如果放在随机位置的棋子,象棋大师都没有在记忆板位置又比非棋手更好

同样的概念也适用于程序员。 当编码风格是一致的,编码结构出现了“自然”的程序员和较大的部分代码更容易吸收。 我们的短期记忆有一个关于“七加或减二”块容量等等,这些耳熟能详块是较大的,较为原始数据我们的头脑可以有效地保持在内存中( 乔治·米勒 )。

当面对随机格式代码,程序员必须花费除了精力手动分析出他们正在研究这个问题的各个部分 。 从持有较大块的问题在内存中进行这项工作的能力带走。 这也意味着,它需要更长的时间来达到一个地步,程序员高效地解决手头的问题。

流程时间

你有没有发现一个问题似乎很清楚,而你继续进行这项工作,但是,你似乎是“失去的信息”当你回来以后的问题; 即打破你的流动时间? 流动时间充分证明在人件 (必须阅读所有的程序员)。 流动时间是程序员获得了大部分工作的完成,当你上的时间延长,不间断的周期问题的工作,才能达到。 这是因为它需要一定的时间周期程序员足够的问题融入认知记忆的问题,有效地开展工作。 格式良好的代码可以帮助我们的视觉图像处理,这意味着程序员达到流动时间要快得多。

我曾在几家软件公司编写的编码标准。 不幸的是程序员多少觉得编码标准只是一个断言过他们是如何做到的事情不需要的控制手段; 创造性的审查制度的一种形式。 说实话,它基本上没有什么关系的实际标准是什么。 该值是获得在一个团队中每个人都必须保持一致,即使这意味着让做我的方式或做它自己的方式之间的经常武断的决定。

下面是我上面提到的几个参考:

  • 人件:生产项目和团队 < - A必须阅读
  • 程序员的实证研究-一个代码审查的认知分析
  • 国际象棋内存
  • 棋存储器的计算机模型
  • 分块(心理学)


Answer 2:

我们的研究支持这种说法是编程的计划和规划的话语规则的知识可能对程序理解一个显著的影响。 在他们所谓的[在] [编程]风格,Kernighan和Plauger的元素也确定是我们所说的话语规则的书。 我们的实证结果把牙齿到这些规则:这是不是仅仅是方案应在一个特定的风格写成美学的问题。 而是存在于以传统的方式编写程序的心理基础:程序员有强烈的预期,其他程序员将遵循这些规则的话语。 如果规则被违反,然后由程序员已经建立了随时间变化的预期带来的效用是有效无效。 从新手和高级程序员的学生,并与本文所描述的专业程序员的实验结果提供了这些说法的明确支持。

编程知识的实证研究。 索洛韦和埃利希。



Answer 3:

这个地方我获得了关于该问题的最见解:

C ++编码标准:101条规则,准则,和最佳实践 (萨特,Alexandrescu的)

这是值得一读,即使你是不是在C ++工作。



文章来源: Research into Advantages of Having a Standard Coding Style