代码可读性的最佳选项卡大小

sot*_*ips 24 python readability

除了个人偏好,是否有最佳的标签大小(2个空格?3个空格?8个空格?)以获得代码可读性?在我参与的不同项目中,人们似乎有着截然不同的标准.我似乎无法阅读2个空格缩进,但谷歌等公司将其作为标准使用.

任何人都可以指出文章,研究或有关选项卡最佳尺寸的合理论证吗?

如果我们想要具体,我主要在python中工作.这个问题的目标是为我工作的团队选择一个标准.

esm*_*esm 38

如果您是Pythonista,则有四个空格,没有硬标签.


Chr*_*ell 11

我喜欢8个空格(我知道,对吗?).它使块的开始/结束非常明显.

至于你的问题,需要进行正式的可用性研究.我们来看看极限:

0个空格

function test(){
var x = 1;
for (i=0; i<=5; i++){
doSomething();
}
}
Run Code Online (Sandbox Code Playgroud)

没有缩进显然是坏的.你不知道什么开始或结束.

19个空间

function test(){
                   var x = 1;
                   for (i=0; i<=5; i++){
                                      doSomething();
                   }
}
Run Code Online (Sandbox Code Playgroud)

压痕的负载显然也很糟糕,因为您无法在视觉上将代码链接到其父函数或循环(或者您拥有的东西),因为您的周边视觉不会延伸到那么远.你的眼睛必须来回滑动太远以方便阅读.

8个空格

function test(){
        var x = 1;
        for (i=0; i<=5; i++){
                doSomething();
        }
}
Run Code Online (Sandbox Code Playgroud)

我想我决定使用8个空格,因为'function'这个词的长度是8个字符.但它对可读性似乎非常有用.所有代码都在我的周边视觉中,如果我快速扫描,我就无法错过新代码块的开始.

  • +1实际描述您选择所选内容的原因. (3认同)
  • -1 OP要求提供客观研究,而不是主观的手工操作 (3认同)
  • -1 表示以 0 个空格开头作为下限,因为 0 个空格在 Python 中不起作用,OP 提到了这一点。 (2认同)

big*_*ose 5

讨论通常会引起误解,因为(如jwz所描述的)它通常涉及三个不同的问题

  • 当我Tab在文本编辑器中按键时会发生什么?

  • 当我要求编辑器缩进一行或多行时会发生什么?

  • 查看包含U + 0009水平制表符的文件时会发生什么?

我的答案:

  • 按下该Tab将使当前行(或所选行)缩进一级。

    作为第二种选择,我也可以容忍像Emacs这样的编辑器,该编辑器将此键用于上下文相关的fix-my-indentation命令。

  • 如果共识足够牢固,缩进一条或多条线应遵循现行的惯例;否则,我非常喜欢每个级别的4个空格缩进

  • U + 0009字符应将后续字符移至下一个制表位。制表位从第1列开始,相隔8列,没有例外。


小智 5

2 space 4 busy coder
3 space for heavy if statement using script kiddies 
4 space for those who make real money pressing space 4 times
8 space for the man in ties and suit who doesn't need to code
Run Code Online (Sandbox Code Playgroud)

  • 1个高效编码器选项卡 (6认同)