Locked. This question and its answers are locked,因为该问题没有主题,但具有历史意义。它目前不接受新的答案或互动。








关于是否有任何研究或研究最佳编码约定/样式的问题,Stackoverflow有两个问题。这不是这个问题的意思。这个问题是关于是否有任何研究来研究拥有整个组织范围的编码约定和样式是否有任何优势,生产率的提高或其他积极的副作用。

我对此有自己的看法,基本上说,制定这样的标准会带来巨大的好处。坦白说,只要能够在所有可能使用的代码中保持一致,我就不会在乎我需要使用哪种样式。

我只想知道是否有研究支持我的观点或与之矛盾。

最佳答案

有几项研究表明,严格遵循一致的视觉样式有助于经验丰富的程序员在内存中保留更多局部问题,而不必记住问题的各个要素。
一致的编码样式辅助
它与人类内存的工作方式有关。这称为分块。例如,与不熟悉游戏的人相比,国际象棋大师在内存国际象棋位置方面要好得多,这是一个经过充分研究的现象。但这仅是棋子出现在正常游戏中会出现的“自然位置”中。如果将国际象棋棋子放置在任意位置,则在记住棋盘位置时,国际象棋大师的不会比非国际象棋棋手更好。
相同的概念适用于程序员。当编码风格一致时,编码结构对于程序员来说似乎是“自然的”,并且较大部分的代码更容易被吸收。我们的短期内存具有大约“七个正负两个”块的容量,因此,这些熟悉的块越大,我们的思维就可以活跃地保留在内存中的原始数据越多(George Miller)。
面对随机格式的代码时,程序员必须花费更多的精力来手动解析的各个部分,以解决他们正在解决的问题。这就失去了将更大的问题保留在内存中进行处理的能力。这也意味着要花更长的时间才能达到程序员有效解决当前问题的程度。
流动时间
您是否曾经发现过,当您继续研究该问题时,问题似乎如此清晰,但是当您稍后再回到该问题时,您似乎“失去了信息”;即打破您的流动时间?流程时间在Peopleware中有充分的记录(所有程序员都必须阅读)。流程时间是程序员完成大部分工作的时间,只有在您长时间不间断地处理问题时才能实现流程时间。这是因为程序员需要一定时间才能将足够多的问题吸收到认知内存中,才能有效地解决该问题。格式正确的代码有助于我们进行可 View 像处理,这意味着程序员可以更快地达到流程时间。
我已经在多家软件公司编写了编码标准。不幸的是,有许多程序员认为编码标准只是断言对他们的工作方式的不必要控制的一种手段。一种创造性的审查制度。实话实说,实际标准到底有多重要。值(value)在于使团队中的每个人保持一致,即使这意味着在以自己的方式进行操作或以自己的方式进行操作之间经常做出任意决定。
这是我上面提到的一些引用资料:

  • Peopleware: Productive Projects and Teams
  • Empirical Studies of Programmers - Cognitive Analysis of a Code Inspection
  • The Chess Memory
  • A computer model of chess memory
  • Chunking (psychology)
  • 10-06 11:10