如果在所选的IDE中启用“查看右边距”,则可能默认为80个字符。我倾向于将它改为120,除了它是几年前我公司的标准,没有其他公司告诉我采用不同的方式。
我的问题是,是否有任何研究实际上显示80个字符是代码可读性的最佳最大宽度,或者这个值只是“就像它一直以来那样”并且没有人真正知道为什么会这样?并且,一行代码的宽度是否应该是编码标准的一部分?
答案 0 :(得分:106)
实际上,80列的东西早于DOS。它来自卡片冲头,它是80柱装置。
为了回答OP的问题,一项“研究”已经持续了大约600年 - 印刷书籍。这些已经发展了几个世纪,最重要的是可读性,我们现在的位置,文本的平均线长约为60个字符。因此,为了便于阅读,请选择更窄的边距。
答案 1 :(得分:90)
怜悯那些必须在以后维护你的软件并坚持使用80个字符的程序员。
更喜欢80的理由:
可在笔记本电脑上使用较大的字体阅读
留出空间,将两个版本并排放置以进行比较
为IDE中的导航视图留出空间
打印时没有任意破坏线条(也适用于电子邮件,网页......)
限制一行的复杂性
限制缩进,这反过来限制了方法/功能的复杂性
是的,它应该是编码标准的一部分。
答案 2 :(得分:36)
我没有学习,但我会讲述我的经历。
在处理文本时,我发现水平滚动很乏味。我查看将使用代码的环境,并根据该上下文设置宽度标准。
例如,当我在XWindows上使用Emacs时,它总能很好地拥有2个Emacs窗口并排。这限制为80个字符,这是我的最大行长度。
有一次,我在1920x1200的屏幕上使用Visual Studio。我会保持最大化,所有工具窗口都停靠在一侧。两个编辑器窗口有足够的空间并排,大约100个字符。
我还发现最长的行来自带有长参数列表的方法调用。这有时是代码异味:也许该方法应该重构。
如果你&你的共同编程人员拥有高分辨率的屏幕和清晰的视力,一定要使用小字体和长行。相反,您可能需要短线。
答案 3 :(得分:21)
除非公司另有说明,否则我通常使用120-150。但是,它还取决于代码的类型:
直到几年前,我限制在100只,但现在通常使用宽屏,甚至可以在笔记本电脑上看到高分辨率显示器120(我几乎没用)。
将屏幕与书籍进行比较并不是很好,因为书籍具有更多的垂直空间,而且屏幕具有更多的水平空间。我总是尽量保持最大功能。一个可见的屏幕长。
答案 4 :(得分:8)
也许80个字符也是避免这些糟糕的吸气链的好点:
object.getFoo().getBar().getFooBar().get ...
如果你将它限制为80个字符,也许有人会将这些变量本地化并进行空检查等,但也许大多数程序员会让它们换行到下一行。我不知道
除此之外,如星蓝提到的那样,80个字符很棒。这应该明确地进入编码标准。
答案 5 :(得分:3)
我清楚地记得在某个地方阅读(我认为它在Agile Documentation中),为了获得最佳的可读性,文档的宽度应该是大约两个字母,或者60-70个字符。我认为旧终端的线宽部分来自旧的印刷规则。
答案 6 :(得分:3)
右边距选项旨在向您显示页面的宽度,如果您打算打印代码,并且之前已发布说它已设置为80,因为这是历史上在GUI之前的行长度回到打卡。
我最近在一些博客上看到了一个建议(不记得是什么博客)来增加你的IDE字体大小以提高代码质量,其背后的逻辑是,如果更少的代码适合屏幕,你会写较短的线条和shouter功能。
在我看来,较短的行使得阅读代码和调试更容易,所以我尽量保持简短的行,如果你必须设置一个限制,让自己写出更好的代码然后选择适合你的东西 - 如果你是使用更长的行更有效率,只需在宽屏幕上增加页面大小和代码。
答案 7 :(得分:2)
无视硬件限制,以及我们如何阅读代码与自然语言之间的差异,我认为将线路限制为大约80个字符有三个主要原因。
答案 8 :(得分:0)
据我所知,80字符用作编码标准,以保持与命令行编辑器的兼容性(默认终端宽度通常为80个字符)。使用现代IDE和大屏幕分辨率,80个字符可能不是“最佳”,但对于许多开发人员来说,保持终端的可读性至关重要。因此,80字符宽度不太可能很快被替换为代码宽度的事实标准。为了回答您的最后一个问题,是的,代码宽度以及影响代码可读性的任何其他特性都应该在您的编码标准中得到解决。
答案 9 :(得分:0)
正如有些人在其他答案中指出的那样,80个字符限制的部分原因是部分历史(穿孔卡片,小屏幕,打印机等)和部分生物学(跟踪你在其中的线条通常是好的)能够看到整条线而无需转动头部。)
那就是说,请记住,我们仍然是人类,我们建立工具来解决我们自己的局限。我建议你忽略关于字符限制的整个争论,只是编写有意义的东西而不管它们的长度,并使用IDE或文本编辑器来帮助你正确地跟踪行。在标签与空格辩论中使用相同的缩进参数,以及缩进的宽度我建议你使用缩进标记(最常见的是标签),让人们配置自己的IDE或文本编辑器来显示它们因为他们觉得最舒服。
每行固定一定数量的字符总会让每个人的情况变得更糟,只有目标受众。也就是说,如果你永远不会分享代码,那么;然后,我们真的没有理由开始讨论这个问题。如果你想分享这些代码,你应该让人们自己决定他们想要什么,而不是强迫你的(或其他人)理想。
答案 10 :(得分:0)