在当今这个时代,对代码文件强制限制最大宽度为80个字符有合理的理由吗?

183

说真的,对于一个22英寸的显示器来说,它只覆盖了屏幕的大约四分之一。我需要一些弹药来砍掉这个规则。


我并不是说就不应该有限制;我只是在说,80个字符太少了。


所有的回答基本上都说明了我想要补充的内容。为了给你一个真实的例子——我有一台x61s,分辨率是1024x768。当我在路上时,我没有我的高级显示器。当我的IDE中的代码超过这个规则时,打开它是很痛苦的。 - Till
可能是http://stackoverflow.com/questions/95575/的重复问题,当你编码时,你会为多少列进行格式化? - Roger Pate
即使您有一组三个显示器,这也不是左右摇头的理由。永远不是。啊哈哈。实际上,眼睛移动得比头快。您知道报纸中的列吗?宽度的原因是为了方便眼睛/头部/人类。 - Ivan Black
6
更新于2021年12月13日:合并:Linux内核已正式弃用其编码风格,即代码行长度符合80列作为“强烈推荐的限制”。31-May-2020 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bdc48fa11e46f867ea4d75fa59ee87a7f48be144 - Israr
32个回答

3

我希望保持代码行数在80个字符左右,原因很简单:超过这个限制意味着我的代码变得太复杂了。过于冗长的属性/方法名称、类名等会像简洁的名称一样造成伤害。

我主要是Python编码人员,所以这产生了两个限制:

  1. 不要编写过长的代码行
  2. 不要缩进过多

当你开始达到两三级缩进时,你的逻辑就会变得混乱。如果你不能将一个块保持在同一页上,那么你的代码就变得太复杂和难以记忆。如果你不能将一行代码保持在80个字符内,那么你的代码就变得过于复杂。

在Python中编写相对简洁的代码(参见codegolf)虽然会牺牲可读性,但编写冗长的代码更加容易牺牲可读性。辅助方法并不是坏事,辅助类也不是。过度抽象可能会成为问题,但这是编程的另一个挑战。

如果你使用C语言时有疑问,请编写辅助函数并将其内联,如果你不想调用其他函数并跳回来时产生额外开销。在大多数情况下,编译器会为你处理好这些。


3

已经有很多好的答案了,但值得一提的是,在您的集成开发环境中,您可能会在左侧看到文件列表,右侧看到函数列表(或任何其他配置)。

你的代码只是环境中的一部分。


2

我整天在进行并排对比,但我没有一个22英寸的显示器。我不知道以后是否会有。当然,这对于只写代码而不关心可读性的程序员来说可能没什么兴趣。


你有没有买过22英寸的显示器? - Adrian Wiik

1

我强制我的学生将代码压缩到80列,这样我就可以打印出来并标注

大约17年前,我让自己的代码扩展到了88列,因为我开始使用Noweb和TeX,88列是适合在文档中打印的宽度。

我只缩进两个空格,但多余的空间非常好用。


1

其实我也遵循类似的规则来编写我的代码,但这只是因为要将代码打印到A4纸上 - 80列是我所期望字体大小的正确宽度。

但这只是个人偏好,可能不是你想要的(因为你想要反向的证据)。

为什么不质疑这个限制背后的原因 - 如果没有人能够提出一个好的理由,你就有足够的理由将其从你的编码标准中删除。


我非常确定这是在文本模式屏幕宽度为80个字符的时代。 - TraumaPony

1

我认为不强制限制每行80个字符会导致最终的自动换行。
在我看来,选择任何长度作为最大宽度并不总是合适的,因此自动换行应该是一个可行的答案。
但这并不像听起来那么容易。

jeditalt text实现了这一功能
(来源: jedit.org)

但是自2003年以来,它在Eclipse中被严重忽视了!主要原因是文本编辑器中的自动换行需要以下功能:

  • 自动换行信息用于文本查看器、代码导航、垂直标尺。
  • 未自动换行信息用于诸如转到行、行编号标尺列、当前行高亮、保存文件等功能。

1

是的,因为即使在今天,我们中的一些人仍在终端上编码(好吧,主要是终端仿真器),其中显示器只能显示80个字符。因此,至少对于我所做的编码,我非常赞赏80个字符规则。


0

我会尽量让每行代码不超过80个字符。主要原因是在命令行中浏览代码时,我经常使用grepless。我真的不喜欢终端将长的代码行分割成几行(毕竟它们不是用来做这项工作的)。另一个原因是如果每行代码都可以放在一行内而不被编辑器打断,我会发现看起来更好。例如,将长函数调用的参数漂亮地对齐在彼此下方等类似的东西。


0

我仍然认为限制不仅仅局限于视觉部分。当然,现在的显示器和分辨率足够大,可以在一行中显示更多的字符,但这是否增加了可读性呢?

如果真的强制执行限制,这也是重新思考代码并不要将所有内容放入一行的好理由。这与缩进是相同的 - 如果需要太多级别,您的代码需要重新思考。


0

在编程时,将代码限制在80个字符以内是你要做的事情,而不是之后再去做。当然,注释也是一样的。大多数编辑器都可以帮助你看到80个字符的限制。

(这可能有点离题,但在Eclipse中有一个选项,可以在保存代码时格式化它(根据你想要的任何规则)。起初可能有点奇怪,但过一段时间后,你开始接受格式化不再掌握在你手中,就像生成的代码一样。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接