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

>事实,
>参考,
>具体专业知识

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.

php – 使用空格而不是制表符缩进的客观原因?的更多相关文章

  1. 《从零开始学Swift》学习笔记Day 59――代码排版

    代码排版内容比较多工作量很多,但是非常重要。空行空行将逻辑相关的代码段分隔开,以提高可读性。所有的二元运算符,应该使用空格将之与操作数分开。在Xcode中设置过程是打开菜单Xcode→Preferences,选择TextEditing标签,选中Show→Pageguideatcolumn。在Xcode中默认是一个制表符对应4个空格,我们可以在Xcode中打开菜单Xcode→Preferences,选择TextEditing→Indentation标签,可以在Tabwidth中进行设置。

  2. android – 如何在制表符/片段转换之间设置新的浮动操作按钮的动画?

    从新的DesignSupportLibrary,我想动画浮动操作按钮(FAB)缩小和扩展片段或选项卡更改.我尝试了几种过渡一段时间,但不能像this的例子那样顺利和连接,所以我认为有更好的方法或正确的方法来做到这一点.解决方法在ViewPager.OnPagechangelistener()中,我将使用btn.setScaleY()和btn.setScaleX(),具体取决于onPageScrol

  3. windows-7 – SStab在不同的操作系统中无法正确显示

    我正在研究Windows10中的旧版VB6应用程序.我目前正在尝试让应用程序在Windows10中无缝运行,我遇到了一些问题.其中之一是sstab控件.见下图:样式,制表符方向,所有属性都是相同的,但可以看出,Windows7中的文本看起来与Win10相当.它似乎向左浮动,当选择时,其中一个S似乎被切断了顶部并添加了第二行.有人有什么想法吗?

  4. PHP – 在数组中分解值,输出到制表符分隔文件

    我在名为test_tab.txt的文件中有以下内容:我想将其转换为以下:我一般都是编程的新手,但我已经google了一下,我认为这样做的一种可能方法是创建一个数组并以某种方式爆炸header3键值对.我不知道怎么去复制header1和header2下的字段.我现在所拥有的只是创建数组的一些代码:这使:关于如何处理这个的任何想法?我使用的是PHP5.3.10版.试试这个:希望这可以帮助.

  5. php – Komodo编辑8.5标签设置

    我使用KomodoEdit8.5,我的标签有问题.当我按Tab键时,它会跳转8个字符,而不是我在首选项中使用的4个字符.“每个缩进的空格数”是4,“每个制表符的宽度”也是4,所以我不明白问题出在哪里.一切看起来都很好,但是当我点击标签键时,它会跳转8个字符.它似乎完全忽略了我的设置.你有什么解决方案吗?

  6. 正则表达式 – 正则表达式:一行字符串仅包含浮点数和制表符/空格

    包含ONLY浮点数的字符串行的正则表达式是用空格或制表符分隔的.浮点数可以是负数,如-999.999让我们为浮动提出一个正则表达式,然后看看我们可以对其余部分做些什么.浮动是:>可选的负号>后面跟着一些数字>后跟一个可选的小数点,然后是更多的数字>跟随“e”>后跟多个数字(带有可选符号).把它放在一起,我们得到:现在,这是相当宽松的,但如果你想把它收紧一点,你可以调整一下.现在,对于其中任何数量的

  7. php – 使用空格而不是制表符缩进的客观原因?

    根据PSR-2标准,是否有客观原因使用空格而不是制表符来缩进文件,有人可以提供:>事实,>参考,>具体专业知识PSR-2标准的基础?

  8. Notepad++快捷键&正则表达式替换字符串&插件介绍

    其左边的字符被匹配0次或者1次.例如“be?”

  9. Notepad++使用正则表达式的查找替换

    选中“正则表达式”复选框,表明我们要在查找、替换中使用正则表达式。③、下面的操作添加正则表达式,该表达式代表待查找的空行。括号在正则表达式中表示,文本中的字符匹配括号中任意一个字符即符合查找条件。④、“替换为”组合框保持空,表示删除查找到的内容。

  10. 正则表达式全部符号解释及示例

    正则表达式全部符号解释字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。$匹配输入字符串的结束位置。*匹配前面的子表达式零次或多次。请注意在逗号和两个数之间不能有空格。匹配任何不在指定范围内的任意字符。\v匹配一个垂直制表符。如果\nm之前至少有nm个获得子表达式,则nm为向后引用。\un匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部