我相信你一定遇到过关于缩进的 "制表符与空格 "的辩论。这场争论自古以来就一直在进行,两个阵营都在提出自己的论点。
制表员:
- 缩进是它们的目的
- 更小的文件,因为缩进占用了一个字符
- 你可以设置你自己的缩进宽度(我们会再来讨论这个问题)
空间:
- 代码在任何地方看起来都一样,一致性是关键。
- 避免白色空间敏感环境中的潜在问题
但如果这不仅仅是个人偏好呢?ChaseMoskal最近在Reddit上发表了一篇非常发人深省的文章,名为《没有人提到使用标签而不是空格的真正原因》,这会让你大开眼界。
使用标签的核心原因
在他的帖子中,切斯描述了在他的工作场所引入空间的经验,以及对有视觉障碍的同事产生的负面影响。
其中一个人习惯于使用1的标签宽度,以避免在使用巨型字体时出现大的缩进。另一个人使用了8号标签宽度,因为它在超宽显示器上最适合他。然而,对于这两个人来说,带有空格的代码构成了一个严重的问题,在阅读前必须将其转换为制表符,在提交前又必须转换为空格。
对于使用盲文显示器的盲人程序员,每个空格代表一个盲文单元。因此,如果默认的缩进是4个空格,第3级缩进在代码开始之前浪费了12个宝贵的盲文单元。在40个单元的显示屏上,这是笔记本电脑上最常用的,这意味着超过四分之一的可用单元被浪费,没有任何信息。
对我们来说,调整缩进宽度似乎是一种浪费,但在我们中间有一些程序员,这对他们来说是绝对必要的。而我们根本不能忽视这一点。
通过在我们的项目中使用标签,我们给他们这种定制的选择。
首先是可及性,然后是个人偏好。
当然,当涉及到偏好时,你不可能说服每个人都倾向于一个方向或另一个方向。每个人都有自己的。而且我们应该为这种选择感到高兴。
但与此同时,我们必须确保将每个人都考虑在内。尊重差异,使用无障碍手段。如tab字符。
我认为切斯在他的帖子中说得很完美,他说:"......没有任何反驳的理由,甚至接近于超过我们同事的无障碍需求。"
无障碍第一
就像在设计网站时,我们接受 "移动优先 "的方法,我们努力确保每个人,不管是什么设备,都能在你的产品中获得良好的用户体验--我们应该努力创造一个 "无障碍优先 "的环境,确保每个人都有同样的机会来处理代码,无论是在工作中还是在开源项目中。
如果制表符成为默认的缩进选择,我们将消除一个障碍。这样一来,无论能力如何,每个人都能享受到合作的乐趣。如果每个人都有相同的机会,我们就能最大限度地发挥集体的潜力 ❤️
这篇文章是基于"无障碍优先 "环境下的默认选项卡而不是空格。 我在2008年读了一篇类似的引人注目的文章,并在那天将我所有的项目中的空格改为选项卡。在Git中还有一丝痕迹,但文章本身已经淡出了历史。