我们什么时候应该在源代码中插入空白行?

时间:2011-04-14 09:54:30

标签: language-agnostic coding-style

我不确定在源代码中应该在哪里添加新的空白行。我想编写易于阅读和理解的漂亮代码。

仅基于对象,还是基于概念?带有例子的答案对我来说最有帮助。

8 个答案:

答案 0 :(得分:5)

就个人而言,我没有使用太多的垂直空白 - 其他人会推荐比我下面描述的更多。只要在不同的东西之间存在某种视觉分离,我想看代码,而不是空白行。我倾向于:

  • 非成员函数之间的一个空行(在C ++中,在类外定义的成员函数之间)
  • 班级之间的一个空白行。
  • 与后面的多个函数/类相关的注释之前和之后的单个空白行,即在代码中定义“sections”:“XML处理的辅助函数”,这种评论。
  • 班级中的成员函数之间没有空行
  • 通常函数内没有空行。如果一个函数分几个阶段,我可能会在它们之间加上空白行,或者只是在它们之间发表一条解释阶段的评论。很长的函数更有可能以这种方式用空格分解,而不是我认为很长的函数是一件特别好的事情。如果一个成员函数确实有内部空行,我通常会将它与类中的其他成员函数分开,并用空行。

连续两条空白线看起来有点让我怀疑,我自己也几乎没有这样做过。三只是在我的显示器上浪费了非常好的空间 - 任何想要分开的东西的人都应该将IMO放在不同的文件中。

自动文档的注释块(Javadoc,Doxygen,Pydoc等)也提供了视觉分离 - 比几行空格更多,并且比任何数量的空白都更有效率。

当您在团队中工作时,请复制您修改的任何文件的样式。请勿重新格式化以符合您自己的首选项,请勿使用首选格式添加新代码。无论是同意房屋风格还是只是住在一起。

答案 1 :(得分:3)

我认为这是个人偏好或公司标准的问题,但在办公室,即使我们有一些指导方针,每个人都有自己编写代码的方式,而空白是差异之一。

我更喜欢使用大量的空行。每当我的代码的上下文发生变化时,我将这部分与前一部分和下一部分分开,并在之前对整个块进行注释。

答案 2 :(得分:1)

这取决于您自己的偏好或您公司的指导原则,您必须创建回车。事实上,这样的指导也将确定您放置空间,标签和呼吸方式的位置。好吧,也许不是最后一次。

如果你是独立的,并且想要简明扼要地编写代码,那么你总是可以考虑实施Microsoft StyleCop。它可以控制您的编码习惯,您可以根据自己的喜好对其进行配置。

答案 3 :(得分:0)

查看StyleCop的源代码布局:http://stylecop.codeplex.com/ 我还推荐FxCop或ReSharper 此外,控制K D布局文档,但不排序空行?

答案 4 :(得分:0)

这可能是偏好或家庭风格的问题。

我在函数之间包含空行,在较大的函数调用中包含逻辑块。

答案 5 :(得分:0)

我的代码标准是:

  • 每个if / else语句结束后(最后}
  • 每种方法后
  • 每个属性后包含多行
  • 收集字段后

示例:

    string a = "Note: ", b= "This", c= "A", d= "String", e= "Test";
    int f=1, h=1;

    string A { Get; Set; }
    string B { Get; Set; }
    string C { Get; Set; }

    string D 
    { 
        Get 
        {
            Return this.d; 
        }
        Set 
        { 
            if (value == "Foo")
            {
               // DoSomething
            } 

            this.d=value; 
        }
    }
    //empty line

答案 6 :(得分:0)

每个人都表示每个人都有自己的方法。在我的情况下,有一些我喜欢持续做的事情。

多行注释前后的空白行。

每个班级前后至少有两个空行。

函数由一行分隔。

其他空行更可选。这里的事情是我喜欢评论和课程脱颖而出。通常适当的缩进将满足大多数其他需求。这里的诀窍是永远不要浪费垂直空间,除非你必须这样做。

如果您必须使用其他人的代码,我认为如果他们遵循相同的空白时间表,您会很高兴。迷失在功能或类定义中可能是一个很大的麻烦。

答案 7 :(得分:0)

仅是个人观点,但我认为您绝对不应在代码中使用空行,尤其是在函数内部。

如果函数是如此复杂,以至于我们正在考虑放置空白行以使其更易理解,那么它可能需要进行一些重构,而不仅仅是空白行。

即,考虑以下简化的php代码段:

function doStuff(){
    $a = new A();
    $result = $a->foo();

    $b = new B();
    $result += $b->bar();

    return $result;
}

我认为这样会更好:

function doStuff(){
    $result = $this->processA();
    $result += $this->processB();
    return $result;
}

通过这种方式,您仍可以提高可读性,而不会浪费文件空间。

我经常用笔记本电脑工作,不得不在文件中滚动很多,这很烦人。如果代码很干净,并且避免了不必要的空行,那么开发和理解起来会更快。