如果在您选择的IDE中启用了“查看右边距”,则可能默认为80个字符。我倾向于将其更改为120,无非是几年前我所在公司的标准,而且没有其他公司告诉我要改做。
我的问题是,是否有任何研究表明80个字符实际上是代码可读性的最佳最大宽度,还是这个值仅仅是“这就是它一直存在的方式”,没有人真正知道为什么会这样吗?并且,一行代码的宽度是否应该成为您的编码标准的一部分?
如果在您选择的IDE中启用了“查看右边距”,则可能默认为80个字符。我倾向于将其更改为120,无非是几年前我所在公司的标准,而且没有其他公司告诉我要改做。
我的问题是,是否有任何研究表明80个字符实际上是代码可读性的最佳最大宽度,还是这个值仅仅是“这就是它一直存在的方式”,没有人真正知道为什么会这样吗?并且,一行代码的宽度是否应该成为您的编码标准的一部分?
Answers:
实际上,80列早于DOS。它来自打卡机,它是80列的设备。
为了回答OP的问题,一个“研究”已经进行了大约600年了-印刷书籍。这些已经发展了数百年,首先考虑了可读性,到现在的位置,文本的平均行长约为60个字符。因此,为了提高可读性,请选择较窄的边距。
留意那些以后需要维护您的软件并限制在80个字符以内的程序员。
选择80的原因:
可以在笔记本电脑上使用大字体读取
留出空间并排放置两个版本以进行比较
在IDE中为导航视图留出空间
打印时不会任意中断(也适用于电子邮件,网页等)
限制了一行的复杂性
限制缩进,进而限制方法/功能的复杂性
是的,它应该是编码标准的一部分。
Limits the complexity in one line
我不确定为什么将复杂度分散到多行更好。它只是将更多内容推入您的思维定势。
我没有学习,但是我会介绍我的经验。
我发现在处理文本时,水平滚动非常乏味。我看一下将在其中使用代码的环境,并根据该上下文设置宽度标准。
例如,当我在XWindows上的Emacs中工作时,始终并排拥有2个Emacs窗口效果很好。最多只能输入80个字符,所以这是我的最大行长。
有一次,我在1920x1200屏幕上的Visual Studio中工作。我将其最大化,所有工具窗口都停靠在一侧。剩下的空间可以并排放置两个编辑器窗口,大约100个字符。
我还发现最长的行来自带有长参数列表的方法调用。有时这是代码的味道:也许应该重构该方法。
如果您和您的协同编程人员具有高分辨率的屏幕和清晰的视力,则务必使用小字体和长行。相反,您可能需要短线。
除非公司另有说明,否则我通常使用120-150。但是,这也取决于代码的种类:
直到几年前,我限制为100,但现在通常使用宽屏,并且在笔记本电脑上(甚至我几乎不使用)都可以看到高分辨率的显示器120。
将屏幕与书籍进行比较并不是很好,因为书籍具有更大的垂直空间,而屏幕具有更多的水平空间。我总是尽力保持最大功能。一个可见的屏幕长。
也许80个字符也是避免这些不良吸气链的好方法:
object.getFoo().getBar().getFooBar().get ...
如果将其限制为80个字符,也许有人会本地化这些变量并进行null检查等,但也许大多数程序员会将其包装在下一行中。我不知道
除此之外,如starblue所提到的,有80个字符很棒。这应该明确地纳入编码标准。
忽略硬件限制以及我们在阅读代码和自然语言方面的任何差异,我看到将行数限制为80个字符的三个主要原因。
正如某些人在其他答案中指出的那样,限制使用80个字符的原因部分是历史原因(打孔卡,小屏幕,打印机等),而部分原因是生物学的(要跟踪您所处的行,通常可以看到整个行无需转头)。
也就是说,请记住,我们仍然是人类,我们构建工具来解决自己的局限性。我建议您忽略有关字符限制的整个争论,而只写有意义的东西,而不论它们的长度如何,都应使用IDE或文本编辑器来帮助您正确地跟踪行。在制表符和空格辩论中使用相同的缩进参数,以及缩进应多大,我建议您使用缩进标记(最常见的是制表符),让人们配置自己的IDE或文本编辑器以显示它们因为他们觉得最舒服。
每行坚持使用固定数量的字符将使除目标受众之外的所有人情况变得更糟。就是说,如果您永远不会共享代码,那就永远;那么实际上根本没有理由进行讨论。如果您想共享代码,则可能应该让人们自己决定他们想要的东西,而不是强加您(或其他人)的理想。
据我所知,80字符用作编码标准,以保持与命令行编辑器的兼容性(默认终端宽度通常为80字符)。在现代IDE和大屏幕分辨率下,80个字符可能不是“最佳”,但对于许多开发人员而言,保持终端的可读性至关重要。因此,不太可能很快就将80个字符的宽度替换为代码宽度的事实上的标准。为了回答您的最后一个问题,是的,应该在编码标准中解决代码宽度以及任何其他会影响代码可读性的特征。