使用空格而不是制表符进行缩进的客观原因是什么?

时间:2016-02-26 10:55:22

标签: php code-formatting psr-2

根据PSR-2标准,是否有客观原因使用空格而不是制表符来缩进文件,有人可以提供:

  • 事实,
  • 的引用,
  • 具体专业知识

PSR-2标准的基础是什么?

PSR-2标准的作者想到的不仅仅是“外观和感觉”,不仅仅是基于意见的事物,很多人都难以理解为什么在团队合作中空间更好。

接受答案的解释:

根据Farsides的回答:存储库事件可能是为什么空间在PSR-2中被解释为缩进工具的确切情况。 PSR-2是为协助团队合作而开发的标准。行开头处的单个意外空间 - 使用制表符时 - 可能在IDE中不可见,并且可能会潜入存储库。如果有几个人在同一个文件上工作,很可能会产生不必要的冲突。使用空格而不是标签可以轻松捕捉眼球上的这种意外空间,这可能是一个原因,为什么使用它们成为标准。

1 个答案:

答案 0 :(得分:14)

事实:

1。 GIT和其他版本控制系统以不同的方式处理空白

根据我的经验,我们面对的是我们的项目: GIT和其他版本控制系统以不同方式处理不可见的spaces + TABS,这会导致行的变化,实际上还没有受到影响。很容易不注意,当不小心添加一个space + TAB =缩进在IDE中看起来相同时,但GIT在合并时会有所不同。 它会损害您有效比较源代码管理中的修订的能力,这真的很可怕。当你只有spaces时,它永远不会发生。

2。中和协作者环境中的差异(编辑,操作系统,偏好等)

标签宽度(以空格为单位)取决于您的环境(文本编辑器,操作系统,首选项等),但各处的空间宽度相同。 IDE非常智能,可根据您的个人喜好处理白色空间,但协作产生的输出应符合标准。

3。使用空格的开发人员比使用标签

的人赚的钱更多

使用空格而非制表符与8.6%更高的薪水相关联。使用空格而不是制表符与薪水差异相关,与额外的2。4年经验相关。 (来源:Stack Overflow 2017 Developer Survey)。

4。关于编码风格重要性的大量研究

如果您项目中的每个合作者都会在编码上保持相同的标准 - 从长远来看,这将是好事,协作更有效率和专业性,在您重构或开发时也是如此。关于这方面的研究:

  1. 例如, Ben Shneiderman Exploratory experiments in programmer behavior中确认了这一点:

      

    当程序陈述以合理的顺序排列时,专家能够比新手更好地记住它们。当声明被洗牌时,专家们会对此事进行调整。优势降低了。

  2. Code Complete引用的 Soloway和Ehrlich 1984年的一项老研究,并支持The Elements of Programming Style的研究:

      

    我们的实证结果突显了这些规则:程序应该以特定的方式编写,这不仅仅是美学的问题。而是以传统的方式编写程序的心理基础:程序员强烈期望其他程序员会遵循这些话语规则。 如果规则被违反,那么程序员随着时间推移建立的期望所带来的效用实际上无效