我不明白这部分 php 的PSR-2约定:
行长的软限制必须是 120 个字符;自动样式检查器必须警告但不能在软限制处出错。
行不应超过 80 个字符;超过这个长度的行应该分成多个后续行,每行不超过 80 个字符。
我认为“软限制”的意思是“尽量坚持这个限制,但额外的几个字符不是问题”。但是后来我读了第二行,现在我不明白。
我不明白这部分 php 的PSR-2约定:
行长的软限制必须是 120 个字符;自动样式检查器必须警告但不能在软限制处出错。
行不应超过 80 个字符;超过这个长度的行应该分成多个后续行,每行不超过 80 个字符。
我认为“软限制”的意思是“尽量坚持这个限制,但额外的几个字符不是问题”。但是后来我读了第二行,现在我不明白。
这很容易:
PSR-2没有硬性限制。
MUST (NOT)指的是自动样式检查器,而不是作为程序员的你。
另请注意no error
超过软限制时应发出的部分。
我也在阅读无花果标准,我偶然发现了同样的问题。
在深入了解我的 IDE 设置 (PhpStorm) 后,我在一般“代码样式”页面下方发现了一个小注释,您不会在 php 代码部分看到该注释。
笔记报告:
“指定一个指南 (80) 或多个 (80, 120)”
这可以更好地解释 PSR 规则,我现在是这样阅读的:
“你不应该写超过80 个字符的行,但如果你需要,你可以写。如果你超过 80 个字符,无论如何都要避免超过120 个字符的行”。
如果您有两个垂直标尺,这是完全可能的:将它们设置为80、120,您将知道何时超过第一个限制(警告),以及何时超过第二个限制(停止!)。
如果您使用自动代码格式化(我这样做,但人们讨厌我),那么您可以在 php 代码样式页面中设置Hard wrap at: 120。此设置将确保遵循 PSR 规则。
老实说,现在我们的显示器比旧显示器宽很多,因为它们使用 16:9 的纵横比而不是 4:3。所以我不认为遵循 120 个字符规则的紧迫性,因为 16:9 显示器可以轻松处理一行 200 多个字符(我在屏幕上打印了 224 个字符)。
无论如何,我不喜欢打破规则的想法,如果可以的话,我会在谈到编码标准时尝试遵循它们。也许我看不出规则的意义,但如果整个团队都在讨论这个话题,并决定将限制设置为 120 个字符,那么这个决定背后可能有我看不到的原因,所以我只是坚持下去。这就是标准对我的意义所在。
事实上,在过去的几周里,我已经开始垂直拆分编辑器的窗口,将一些文件类型保留在左侧,而将其他一些类型(通常是 JavaScript)保留在右侧。一开始可能有点奇怪,我是那种对错位的东西非常不安的人。但现在我已经习惯了,因为在实践中,这样效果更好!
我在某处读到,我们的视线不能很好地跟上超过一定长度的线条,你可以很容易地理解为什么。尝试阅读行数超过 200 行的文档,您会更容易失去焦点。可能你会多次忽略这一点并再次阅读整行......如果你能找到它的开始!
取而代之的是,最大长度在 80 到 120 之间的文档将有更多行,但更具可读性,并且您还可以在大多数情况下水平拆分屏幕,而无需滚动。我只想说一下我在 PhpStorm 上的发现,和往常一样,我最终写了一张纸莎草纸。我道歉 :)
我很确定我在某处看到了另一种解释……我不知道这是不是真的,但我觉得我应该分享它=)
好的,就是这样:任何行都不应超过 80,但这并不能说明 indentation。使用缩进,限制为 120。
所以,如果你当前的缩进是 80(考虑“守卫”,顺便说一句……)——你只剩下 40 个字符了。但如果您当前的缩进是 40 或更少 - 您最多可以为实际代码使用 80 个字符。
理解所有FIG 标准的关键是正确解释RFC 中使用的关键词。
行长不能有硬性限制。
虽然没有人会拿枪指着你的头……</p>
行长度的软限制必须是 120 个字符。
... 最好不要超过 120 个字符的长度...</p>
行不应超过 80 个字符;超过这个长度的行应该分成多个后续行,每行不超过 80 个字符。
…但是,作为建议,尝试拆分超过 80 个字符的行。
这一切都归结为可读性。针对数字文本的易读性研究表明,与印刷文本一样,行长会影响阅读速度(扫视)。此外,事实证明,当跳到下一行时,潜意识是充满活力的(只要它不经常发生)。在每条新行的开头,读者都会集中注意力,但随着行的持续时间,这种注意力会逐渐消失(“Typographie”,E. Ruder)。