>事实,
>参考,
>具体专业知识
PSR-2标准的基础?
PSR-2标准的作者想到的不仅仅是“外观和感觉”,不仅仅是基于观点的事物,很多人都难以理解为什么在团队合作中空间更好.
接受答案的解释:
根据Farsides的回答:存储库事件可能是为什么空间在PSR-2中被解释为缩进工具的确切情况. PSR-2是为协助团队合作而开发的标准.行开头处的单个意外空间 – 使用制表符时 – 可能在IDE中不可见,并且可能会潜入存储库.如果有几个人在同一个文件上工作,很有可能产生不必要的冲突.使用空格而不是标签可以轻松捕捉眼球上的这种意外空间,这可能是一个原因,为什么使用它们成为标准.
1. GIT和其他版本控制系统以不同方式处理空白区域
根据我的经验,我们面对我们的项目:GIT和其他版本控制系统以不同的方式处理不可见空间TABS,并且它导致线条的变化,实际上没有受到影响.很容易不注意,当不小心添加一个空格时,TAB = indent在IDE中看起来相同,但GIT在合并时会有所不同.它会损害你有效地比较源代码控制中的修订版的能力,这真的很可怕.当你只有空间时,它永远不会发生.
2.中和协作者环境中的差异(编辑,操作系统,偏好等)
标签宽度(在空格中)取决于您的环境(文本编辑器,首选项等),但空间宽度在任何地方都是相同的. IDE非常智能,可以根据您的个人喜好处理白色空间,但协作产生的输出应符合标准.
3.使用空格的开发人员比使用标签的开发者赚钱更多
使用空格而不是制表符与工资提高8.6%相关联.使用空格而不是制表符与薪水差异相关,因为额外的2.4年经验. (来源:Stack Overflow 2017 Developer Survey).
4.关于编码风格重要性的大量研究
如果您项目中的每个合作者都会在编码上保持相同的标准 – 从长远来看,这将是好事,协作更有效率和专业性,在您重构或开发时也是如此.研究:
>例如,Ben Shneiderman在Exploratory experiments in programmer behavior证实了这一点:
when program statements were arranged in a sensible order,experts were able to remember them better than novices. When statements were shuffled,the experts’ superiority was reduced.
> Soloway和Ehrlich在1984年进行的一项1984年的研究引用了Code Complete年的研究,并从The Elements of Programming Style开始支持研究:
Our empirical results put teeth into these rules: It is not merely a matter of aesthetics that programs should be written in a particular style. Rather there is a psychological basis for writing programs in a conventional manner: programmers have strong expectations that other programmers will follow these discourse rules. If the rules are violated,then the utility afforded by the expectations that programmers have built up over time is effectively nullified.