您是否遵循在源代码中包装长行的标准?您认为最适合阅读的线路长度是什么?
有时候我会找到在宽屏显示器上编程的人,并喜欢用它的全宽来显示源代码。我更喜欢较短的线条,大约80-100个字符,但我很难说服同事随着宽屏设备的日益普及。
编辑:
类似的问题:
答案 0 :(得分:54)
不要破坏教条规则对一行中确切字符数的可读性。水平滚动是不可取的,但是81字符的行比压缩 - 容易混淆的行包装版本更容易阅读。
对于具有大缩进和/或详细变量名称的编程样式,80个字符可能不够用。将逻辑复杂度保持在每行最大值,而不是字符数。
答案 1 :(得分:20)
我坚持80行规则(并试图说服每个人都这样做)。一些原因:
答案 2 :(得分:4)
您不必水平滚动以阅读代码。但更大的屏幕并不意味着更长的线条!一行中应该进行多少限制。
所以我说:一如既往地将它保持在70-80个字符。更大的屏幕只意味着IDE更多的空间。
答案 3 :(得分:3)
它还取决于您正在使用的其他约定。在一项工作中,我们使用Java进行编程,惯例是使用长而描述性的标识符,这意味着只有少数几个可以放在一行而不会遇到80个字符的限制。考虑到公司的每个开发人员都配备了宽屏显示器,可以轻松容纳200个字符,我认为这非常愚蠢。对于硬件一致性,强制执行一个非常小的换行限制是没有意义的。
答案 4 :(得分:3)
我更喜欢更长的行,原因很简单:我可以在窗口中放入更多代码。必须垂直滚动以读取函数并能够将其放入单个屏幕之间存在巨大的差异。如果所有内容都是换行的,那么当我的屏幕右半部分为空时,该功能会从底部滚动,我认为这是一个巨大的浪费。请注意,打开两个编辑器窗口也无济于事。
答案 5 :(得分:2)
更大的屏幕 - 更大的字体。我使用GVim,Conslas
14pt最大化,屏幕分辨率为1280x800。我尝试以大约80-90%的屏幕宽度进行包裹。
答案 6 :(得分:1)
我几乎只在笔记本电脑上编程,所以我同意较短的线条。当然,我通常会为PDA设计屏幕,所以我可以侥幸逃脱。但是如果代码在开发人员之间共享,最终会最终出现在某人的笔记本电脑上,滚动条会让我哭泣。
答案 7 :(得分:1)
显然,在我最近的一个项目中,我的行长达258个字符(将标签计为两个字符),所以这是我的答案。 =)
答案 8 :(得分:0)
我们使用80个字符的编码标准。 80 char限制的最初原因今天不相关,但应选择一些数字......
除了显而易见的(代码组织和可读性)之外,通常我发现长行是造型不良的结果,并且这样的规则可以提高代码质量并减少错误。只需比较以下示例:
status = do_something();
if (status == error)
{
do_error_handling();
return;
}
/* do you regular flow */
status = do_more();
if (status == error)
{
do_error_handling();
return;
}
/* do more of you regular flow and keep you line 80 chars*/
代替:
status = do_something();
if (status == succes)
{
/* do you regular flow */
status = do_more();
if (status == success)
{
/* do you regular flow */
/* nest again and get line behind visible screen */
}
else
{
/* do error handling */
}
}
else
{
/* do error handling */
}
第二个例子难以维护,可能会导致一些问题......
修改
在代码中用goto
替换do_error_handling()
,以避免不相关的讨论。
正如我之前所说的80个字符在今天不相关,它只是一个数字100也是好的。
对于那些发现第二个例子更具可读性的人,请用实际代码再嵌套几次,然后再试一次:)
答案 9 :(得分:0)
我使用大约72-75列,以确保我可以在字母格式页面上打印代码而不会有太多麻烦。我也使用空格而不是制表符,并注意布局。
要注意当我离开右边缘时,我经常会放入一条文字行 用作统治者。我设置IDE显示窗口,使标尺适合水平宽度,然后我确保我不会超出它。
我在.txt文档以及.c,.java,.cpp,批处理文件等中执行此操作。这样可以更轻松地在电子邮件中发送片段,在博客上发布,发表评论等。标尺通常位于标识文件和文本格式的顶行下方:
/* example.txt 0.00 UTF-8 dh:2008-11-09
*---|----1----|----2----|----3----|----4----|----5----|----6----|----7----*
*/
当然,使用了特定类型文件的注释约定。