原文标题:Does Column Width of 80 Make Sense in 2018?
作者:javinpaul(https://hackernoon.com/@javinpaul?source=post_header_lockup)
来源:hackernoon(https://hackernoon.com/does-column-width-of-80-make-sense-in-2018-50c161fbdcf6)
译:张三刀
我们有个最古老的编码习惯是保持80的每行代码宽度,并且大部分人都盲目地遵循它,但你有没有想过我们为什么要将这种习惯或是规范放在第一位?
我相信这是为了让你的代码在小型显示器时代更具可读性,以便整个内容可以适应屏幕,或者它可能源于打卡时代,打孔卡曾经是80列宽。注:打孔卡又称穿孔卡、霍列瑞斯式卡或IBM卡,是一块纸板,在预先知道的位置利用打洞与不打洞来表示数字消息。现在几乎是一个过时的存储器,但其设计转变成现今常用于考试及彩券投注等用途的光学划记符号辨识卡片。1928年,IBM发明的80列、矩形孔卡片,成为事实上的标准。
打孔卡
如果考虑过去,这个设置是合理的,但是在2018年,它还有意义吗?如今大部分码农都拥有大型显示器(至少24寸了吧),每行可以显示多达180个字符,如果你还在遵循过去的规则,这不是浪费宝贵的屏幕空间吗?并且这样也可以让你的代码看起来不必要很长。注:这里是通过加大每行宽度浓缩代码行数的意思
我第一次了解80个字符就换行的规则,是在阅读了1999年4月20日修订的Java编程语言的Oracle代码约定,如下:4.1 Line LengthAvoid lines longer than 80 characters, since they’re not handled well by many terminals and tools.Note: Examples for use in documentation should have a shorter line length-generally no more than 70 characters.source:http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-136091.html#248
如果我理解正确的话(我也可能错了),这条规则的其中一个目的就是追求代码的一致性。我曾经认为设置成80的列宽的行为是愚蠢的,但通过过去7年的十几个不同团队编写代码的经历来看,不需要重新调整我的窗口大小是一件非常好的事情。因为保持一致的列宽有助于代码的可读性。
因为我使用的是大型显示器,像带屏幕分割功能的LG 32MP58HQ-P 32英寸IPS显示器,我觉得到我们浪费了大量宝贵的屏幕空间,毕竟保持80的列宽太容易了。
我现在个人使用的是120的列宽。除非我参与的项目已经约定了代码宽度,在这种情况下,我会追求一致性。
Photo byJefferson SantosonUnsplash
人们仍然使用80的列宽的另一个原因也有可能是,他们需要同时处理多个文件。
例如,如果你使用了80的标准列宽,就可以在一个屏幕中同时平铺几个文件,并可以逐行比较它们,我认为这是一个真正的好处。你甚至可以在一个屏幕上进行三方合并检查,而无需横向滚动。当然这不应该以过度包装为代价。所以一致的列宽是为了更容易让人浏览和阅读文本,无论它是80还是120。
最后,保持一致性是一个很好的习惯,你必须去做,但是感觉80或100还是太短,许多开发人员可能会设置在120甚至150,因为我们的现在的宽屏显示器甚至可以设置更宽。但是保持一致的列宽的确很重要,但如果纯粹为了满足这个而过度换行或者包装,在代码的可读性上,我个人觉得还是在一行中看到整个内容要爽一点。当然,这只是我的个人偏好。
涨姿势!原来80列宽是这么来的。三刀的是120,那么你们呢?
领取专属 10元无门槛券
私享最新 技术干货