根据 PSR-2 标准使用空格而不是制表符来缩进文件是否有客观原因,有人可以提供:
PSR-2 标准基于哪个?
PSR-2 标准的作者考虑的不仅仅是“外观和感觉”,不仅仅是基于意见的东西,而且很多人很难理解为什么空间在团队合作期间更好。
对接受答案的解释:
根据 Farsides 的回答:存储库的事情可能是 PSR-2 中空格被解释为缩进工具的一个确切例子。 PSR-2 是为协助团队合作而开发的标准。使用制表符时,行首的单个意外空格可能在 IDE 中不可见,并且可能会溜到存储库中。如果几个人处理同一个文件,很可能会产生不必要的冲突。使用空格而不是制表符可以轻松地在眼球上捕捉到这种意外的空格,这可能是使用它们成为标准的一个原因。
Facts:
1. GIT 和其他版本控制系统对空白的处理方式不同
根据我的经验,我们的项目面临:GIT 和其他版本控制系统对待隐形spaces
+ TABS
不同的是,它会导致线路发生变化,而线路实际上并未受到影响。很容易不被注意到,当有不小心添加了一个space
+ TAB
= 缩进在IDE中看起来是一样的,但是GIT在合并时会有所不同。它会损害您有效比较源代码管理中的修订版本的能力,这确实很可怕。当你拥有的时候它永远不会发生spaces
only.
2. 消除协作者环境的差异(编辑器、操作系统、偏好等)
制表符宽度(以空格为单位)取决于您的环境(文本编辑器、操作系统、首选项等),但是各处的空间宽度都相同。 IDE 足够智能,可以根据您的个人喜好处理空白,但为协作生成的输出应该符合标准。
作为PSR-2 状态 https://www.php-fig.org/psr/psr-2/#24-indenting,仅使用空格,而不是将空格与制表符混合使用,有助于避免差异、补丁、历史记录和注释的问题。使用空格还可以轻松插入细粒度的子缩进以进行行间对齐。
3.使用空格的开发者比使用制表符的开发者赚更多钱
使用空格代替制表符与 8.6% 相关更高的薪水。使用空格代替制表符会导致薪资差异高达 2.4 年的工作经验。 (来源:Stack Overflow 2017 开发者调查 https://stackoverflow.blog/2017/06/15/developers-use-spaces-make-money-use-tabs/).
4. 关于编码风格重要性的大量研究
如果项目中的每个协作者都保持相同的编码标准 - 从长远来看,这将是件好事,协作会更加高效和专业,重构或开发时也会保持相同的缩进。与此相关的研究:
-
例如,本·施奈德曼证实了这一点程序员行为的探索性实验 http://link.springer.com/article/10.1007%2FBF00975629:
当程序语句以合理的顺序排列,专家能够比新手更好地记住它们。当陈述被打乱时,专家的优势就会降低。
-
1984 年的一项旧研究索洛韦和埃利希引用于代码完成 https://rads.stackoverflow.com/amzn/click/com/0735619670,并支持研究编程风格的要素 https://rads.stackoverflow.com/amzn/click/com/0070342075:
我们的实证结果验证了这些规则:程序应该以特定的风格编写不仅仅是美观的问题。相反,以传统方式编写程序有一个心理基础:程序员强烈期望其他程序员遵循这些话语规则。如果违反规则,那么程序员随着时间的推移建立起来的期望所提供的效用就是有效无效.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)