每行80个字符在今天(2020年)依然合理!

很多代码库每行长度最多为 80,这是因为古老的打孔纸的最大长度是 80,一开始的显示器每一行显示的字符也并不是特别多。这一 Max Length = 80 的传统被一直延续下来了。

IBM 打孔纸

现在宽屏显示器非常流行,有一种声音说在代码中将每行的字符限制为 80 是没有必要的,因为这会浪费显示器的空间。

但是我认为行长度设置为 80 依然有道理:

“浪费宽屏显示器的空间” 是不实的。基本上所有的编辑器都有“分屏”的功能,80个字符更有利于分屏展示代码。相反,如果行长度太长,反而会给分屏带来麻烦,比如10行代码中有1行是100多个字符,那么分屏的时候会将这一行“折行”(wrap),显示的很糟糕;如果行长80,可以自由的分屏。

相反,行太长才是“浪费显示器的空间”,屏幕的右边只是偶尔出现几行,大部分都是空白。分屏才能有效利用宽屏显示器。

另外,笔记本的屏幕依然没有“那么大”,如果短行在哪里显示都是OK的,但是长行在小屏幕下显示很糟糕。

Vim 分屏

80字符为一行更容易阅读代码。每行字符更少,分一行来表达一个操作,容易理解。(阮一峰的博客,读起来比较轻松,他比较喜欢用短句,来表达比较复杂的东西,比如你现在在阅读的,括号里面的这段文字)

再比如以下 Java 代码,从 items 中随机选择 5 个。(可能有更简单的方法,这里只是为了举个例子)。

不限制行的长度

增加换行使代码更易读。

80 个字符可以让代码在其他阅读器上阅读更友好。代码并不总是在 Vim 中打开的,比如你躺在床上,打开 ipad,将 more-itertools 的代码放大到和屏幕同样宽度,阅读这些短小巧妙的函数,非常惬意。

用 ipad 在 Github 上阅读代码

当然,死板的遵守 80 个字符也是没有意义的(比如 URL)。Kernel 代码中就有超过 80 的行。Linux 说(2012年的邮件):

有时候打破 80 比强行拆成两行要好。所以代码库中有超过80的情况,这并不是说应该行长100,而是 80+ 在这种情况下是最好的选择。

所以这是一个折中的方案。把 80 想象成是一个 Hard Limit 是不对的,试图将这个 Hard Limit 扩展到 100 也是不对的。

 

综上,一行代码的最大长度依然是 80 !



每行80个字符在今天(2020年)依然合理!”已经有5条评论

  1. 自己写代码的时候往往不会注意这些(很多情况下 IDE 会帮我注意),但是读别人代码的时候就会特别庆幸开发者遵循了这一规范,有尝试过读一些特别喜欢写简写还不换行的源码,崩溃的不行。不过幸好现在很多编辑器都有 Beautiful 插件可以一键优化。

Leave a comment

您的电子邮箱地址不会被公开。 必填项已用 * 标注