在宽屏显示器上,一次无需滚动条即可轻松看到80个以上的字符。甚至连linus torvalds都认为80个字符的限制已经过时了。
因此,在宽屏显示器时代,80个字符的限制仍然有用吗?
在宽屏显示器上,一次无需滚动条即可轻松看到80个以上的字符。甚至连linus torvalds都认为80个字符的限制已经过时了。
因此,在宽屏显示器时代,80个字符的限制仍然有用吗?
Answers:
仍然有80个字符限制的原因有很多(或者74个字符限制更好);即使您添加了diff标记和电子邮件引号,它也允许代码保持少于80列。邮件列表)。
即使在宽屏显示器时代,我也希望并排打开多个窗口,以显示代码的不同部分。例如,我通常在一个屏幕上打开一个网络浏览器和电子邮件,在另一个监视器上同时打开两个文件和一个终端。如果行数超过80列,则需要处理将行换行的编辑器(这很丑陋,使代码难以导航),或者加宽窗口,以至于无法容纳一旦。
即使您通常不以这种方式进行编辑,但如果您使用并排的diff工具,您也会欣赏具有合理行长的文件,这将使您的diff易于查看。
还有一个代码密度问题。阅读代码时,我喜欢有很多上下文。上下滚动窗口比滚动滚动要快得多。如果行很长,那么行的长度也往往相差很大,这会浪费大量屏幕空间,并且在给定时间总体上只能容纳较少的代码。
最后,如果您的行很长,那通常意味着您的行很复杂,内容很深,或者标识符很长。所有这些都是一个问题。复杂的行可能做得太多;如果您可以将其分解为几个简单的行,则可能应该这样做。深度缩进意味着您可能嵌套了太多的循环和条件,这会使您的代码流混乱;考虑将其重构为几个功能。而且,如果您的标识符太长,可能会使读取代码非常困难。人们通常将单词视为单个单位。他们不会一一阅读每个字符,而是查看单词的整体形状。长标识符很难通过这种方式进行区分,通常,如果长标识符那么长,它们将包含冗余或重复信息。
现在,虽然将代码保持在80列以下仍是一种很好的做法,但这并不是必须认真遵循的规则之一,而如果不这样做,就会扭曲自己以使其适合某些行。我建议您尝试将所有代码保持在80列以下,但是当它不合适时,请不要担心太多。
std::vector<...>::const_iterator
),尽管在后一种情况下,通常可以通过typedef来缓解。
如果我的行数少于100个字符,则可以在宽屏显示器上并排放置两个编辑器窗口。同时使类头文件和实现都可见,或者一侧有代码调用另一侧的代码,这是非常有用的。而且,如果我使行短,则我的编辑器窗口上不需要水平滚动条,这给了我更多的垂直空间。
80个字符可能已过时,但是将内容保持在合理范围内还有一些优点。
我认为显示器与它没有任何关系-至少现在不再如此。
如果您不能用80个字符编写一行代码,那么无论如何这可能是错误代码的标志。表达式太复杂。压痕太深。等等。你应该停下来,重新思考自己在做什么。
但是,如果您确定代码需要80行以上,请继续执行。我认为拥有超过80个字符的代码比添加惯用的更改以使其更小更好。
我个人讨厌这种东西:
ret = my_function(parameter1, \
parameter2, \
parameter3, parameter4);
而不是简单地:
ret = my_function(parameter1, parameter2, parameter3, parameter4);
是的,有一些限制代码行长度的原因:
话虽如此,80太少了。但是,作为设计原则,某些限制可能仍然是一个好主意。
我会说,不应该禁止多余的长行,因为偶尔有必要。但是,如果大多数功能只能在30英寸的屏幕上查看,则代码会有一些问题。
确切地选择80个字符的限制可能无关紧要;例如,如果限制为85,将会发生什么变化?
确实,当今使用的监视器具有更高的分辨率,但是在文本编辑器/ IDE中,并非所有空间都来自文本视图;在我使用的编辑器中,左侧显示了项目中包含的文件列表。
上网本或笔记本电脑使用的分辨率与显示器使用的分辨率不同。使用不对任何人产生“问题”的字符限制可能是有意义的。
不,它不再相关:
80个字符实际上是在控制台环境中使用固定宽度字体的准则。
当然,如果您仍在控制台环境中使用固定宽度的字体...那么可以肯定,80个字符是明智的:)