Fos*_*tah 121 code-readability
如果在所选的IDE中启用"查看右边距",则可能默认为80个字符.我倾向于将它改为120,除了它是几年前我公司的标准,没有其他公司告诉我做不同的事情.
我的问题是,是否有任何研究实际上显示80个字符是代码可读性的最佳最大宽度,或者这个值只是"它一直是这样的方式"而没有人真正知道为什么会这样?并且,一行代码的宽度是否应该是编码标准的一部分?
小智 109
实际上,80列的东西早于DOS.它来自卡片冲头,它是80柱装置.
为了回答OP的问题,一项"研究"已经持续了大约600年 - 印刷书籍.这些已经发展了几个世纪,最重要的是可读性,我们现在的位置,文本的平均线长约为60个字符.因此,为了便于阅读,请选择更窄的边距.
sta*_*lue 95
怜悯那些必须在以后维护你的软件并坚持80个字符的程序员.
偏好80的理由:
可在笔记本电脑上使用更大的字体进行阅读
留出空间放置两个版本并排进行比较
在IDE中为导航视图留出空间
打印没有任意破坏线(也适用于电子邮件,网页,......)
限制一行的复杂性
限制缩进,这反过来又限制了方法/功能的复杂性
是的,它应该是编码标准的一部分.
Jay*_*uzi 37
我没有学习,但我会讲述我的经历.
我发现在处理文本时水平滚动很乏味.我查看将使用代码的环境,并根据该上下文设置宽度标准.
例如,当我在XWindows上使用Emacs时,它总是可以并排放置 2个Emacs窗口.这限制为80个字符,这是我的最大行长度.
有一次,我在1920x1200的屏幕上使用Visual Studio.我会保持最大化,所有工具窗口都停靠在一侧.两个编辑器窗口左侧有足够的空间,大约100个字符.
我还发现最长的行来自具有长参数列表的方法调用.这有时是代码气味:也许这个方法应该重构.
如果您和您的共同编程人员拥有高分辨率的屏幕和清晰的视力,请务必使用小字体和长行.相反,您可能需要短线.
小智 22
除非公司另有说明,否则我通常使用120-150.但是它还取决于代码的种类:
直到几年前,我限制在100只,但现在通常使用宽屏,甚至可以在笔记本电脑上看到高分辨率显示器120(我几乎没用).
将屏幕与书籍进行比较并不是很好,因为书籍具有更多的垂直空间,而屏幕具有更多的水平空间.我总是尽量保持最大功能.一个可见的屏幕长.
这里有一个研究供您参考:
我教授编程30多年,在此期间我积累了1823个C源代码,其中包含各种例程,从随机小游戏到神经网络、编译器、教育软件、自动生成的lex/yacc源代码等。
遵循帕累托原则,80% 的程序的行数小于 159 列。因此,为了削减较低的 20% 和较高的 20%,我们有:
现在这是一个给你自由的范围。您不想仅仅为了代码而将代码限制为 80 列,因为有时您需要嵌套循环、函数或一些缩进,这些缩进在更大的行中很容易理解,并且如果您强行扭曲您的逻辑为了适应任意列宽,您没有使用最佳逻辑。
另一方面,有时候,线条的大小表明你的逻辑可以更好,并且你的线条可以更小;特别是如果您不在代码的嵌套部分并且您已经超过了 160 列的限制。
根据我自己的经验和可读性,我建议您编写以 80 列为目标的代码,但允许 120 列的边距,并且永远不要超过 160 列的限制。
此外,我们应该考虑现有的古老阅读体验:书籍。书籍的排版设计是为了方便读者的眼球移动,根据该领域的专业人士的说法,最佳栏目大小最好是每行 60 个字符左右,不少于 40 个,不多于 90 个。
由于编码并不完全是读书,我们可以设定上限,每行应该保持在 80 到 90 个字符之间。
除非您正在编写将在特定屏幕尺寸和旧显示器上运行的低级代码,否则我建议您遵循gopher标准,即每行 67 个字符。
好奇心:
find . -type f -name "*.c" -exec wc -L {} \; | sort -n | less -N也许80个字符也是避免这些糟糕的吸气链的好点:
object.getFoo().getBar().getFooBar().get ...
Run Code Online (Sandbox Code Playgroud)
如果你将它限制为80个字符,也许有人会将这些变量本地化并进行空检查等,但也许大多数程序员会让它们换行到下一行.我不知道
除此之外,如星蓝提到的那样,80个字符很棒.这应该明确地进入编码标准.
不考虑硬件限制,以及我们阅读代码与自然语言的方式的任何差异,我认为将行限制在 80 个字符左右的三个主要原因。