TAB 字符在源代码中是否损坏?[已关闭]

2022-08-30 20:12:54

我对Zend和PEAR PHP编码标准都很熟悉,从我之前的两个雇主那里,代码库中不允许使用TAB字符,声称它可能被构建脚本或其他内容误解(类似的东西,老实说我不记得确切的原因)。我们都设置了我们的IDE,将TAB分解为4个空间。

我非常习惯这一点,但现在我最新的雇主坚持使用TABs而不是缩进空间。我想我不应该真正关心,因为我可以告诉PHP Storm在我点击键时使用TAB char,但是,我这样做了。我想要空格,我想要一个有效的论据来解释为什么空格比TABs更好。Tab

所以,撇开个人偏好不谈,我的问题是,是否有正当理由避免在我们的代码库中使用TABs

请记住,此编码标准适用于 PHP 和 JavaScript。


答案 1

选项卡更好

  • 更清楚地让读者了解每段代码的级别;空格可能不明确,特别是当不清楚您使用的是 2 空格制表符还是 4 格制表符时
  • 从概念上讲更有意义。缩进时,需要的是制表符而不是空格。文档应表示您在键盘上执行的操作,而不是文档内设置。
  • 制表符不能与扩展代码行中的空格混淆。特别是当启用单词变形时,在一系列换行的单词中可能会有一个空格。这显然会让读者感到困惑。这会减慢配对编程的速度。
  • 制表符是一个特殊字符。在 IDE 上启用特殊字符的查看功能后,可以更轻松地识别级别。

所有编码人员请注意:您可以使用JetBrains的任何编辑器(例如PHPStorm,RubyIDE,ReSharper,IntelliJIDEA等)轻松地在选项卡和空格之间切换,只需在Windows,Mac或Linux上按CTRL + ALT + L即可。


答案 2

是否有正当理由避免在我们的代码库中使用TAB?

我曾在许多公司咨询过,没有一次遇到过在各种源文件之间没有某种选项卡和空格混合的代码库,也没有一次成为问题。

首选?确定。

合法的,如根据既定的规则、原则或标准?不。

编辑

我真正想知道的是,如果TABs没有问题,为什么Zend和PEAR都明确表示他们不被允许?

因为这是他们的偏好。他们希望遵循的惯例以保持一致性(以及命名和大括号样式等)。而已。