代码之家  ›  专栏  ›  技术社区  ›  Fostah

标准编码风格的优势研究

  •  10
  • Fostah  · 技术社区  · 16 年前

    关于Stackoverflow,有几个问题是关于是否有任何关于最佳编码约定/风格的研究。这不是这个问题的重点。这个问题是关于是否有任何研究研究表明,在整个组织范围内采用编码惯例和风格是否有任何优势、生产力提高或其他积极的副作用。

    3 回复  |  直到 8 年前
        1
  •  14
  •   Robert Cartaino    11 年前

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

    一致的编码风格有助于分块

    分块 例如,这是一个研究得很好的现象 国际象棋大师更善于记忆 并不比以前更好 与非国际象棋选手相比 在记忆板位置时。

    同样的概念也适用于程序员。当编码风格一致时,编码结构对程序员来说显得“自然”,代码的大部分更容易被吸收。我们的短期记忆容量约为“七加二”块,因此,这些熟悉的块越大,我们的大脑在记忆中可以主动保存的原始数据就越多( George Miller ).

    当面对随机格式的代码时,程序员必须花费额外的精力 手动解析出各个部分 这剥夺了在内存中保存较大问题片段以进行处理的能力。这也意味着程序员需要更长的时间才能高效地解决手头的问题。

    流动时间

    你有没有发现,当你继续处理一个问题时,这个问题似乎很清楚,但当你稍后回到这个问题时,你似乎“丢失了信息”;即打破你的流动时间?流动时间记录在 Peopleware (所有程序员必读)。流时间是程序员完成大部分工作的时间,只有在你长时间、不间断地处理一个问题时才能实现。这是因为程序员需要一段时间才能将足够的问题吸收到认知记忆中,从而有效地解决问题。格式良好的代码有助于我们的视觉图像处理,这意味着程序员可以更快地达到流程时间。

    我在几家软件公司撰写了编码标准。不幸的是,许多程序员认为编码标准只是对他们做事方式进行不必要控制的一种手段;一种创造性的审查形式。说实话,实际标准是什么并不重要。价值在于让团队中的每个人都保持一致,即使这意味着在做这件事之间做出一个经常武断的决定 我的 方式或做它 你的 方式。

    以下是我上面提到的一些参考:

        2
  •  7
  •   Firas Assaad    16 年前

    我们的研究支持这样一种说法,即编程计划和编程话语规则的知识可以对程序理解产生重大影响。在《编程风格的要素》一书中,Kernighan和Plauger还确定了我们所说的话语规则。我们的实证结果证明了这些规则:程序应该以特定的风格编写,这不仅仅是一个美学问题。相反,以传统方式编写程序是有心理基础的:程序员强烈期望其他程序员会遵循这些话语规则。如果违反了规则,那么程序员随着时间的推移所建立的期望所提供的效用实际上是无效的。本文描述的对新手和高级学生程序员以及专业程序员的实验结果为这些说法提供了明确的支持。

    Empirical Studies of Programming Knowledge. Soloway and Ehrlich.

        3
  •  0
  •   Sam Harwell    16 年前

    我对这个问题了解最多的地方是:

    C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (亚历山德雷斯库·萨特)

    即使你不使用C++,这本书也值得一读。