编程时使用空格的最佳方法是什么?

时间:2010-06-14 17:22:53

标签: coding-style whitespace

我是编程和学习的新手我已经看到了格式化代码,注释等的不同方法;并且已被推荐用于不同的技术。

我主要使用C#,C ++和Java编程,所以我想知道布局代码的最佳方法是什么,这样如果其他人经历过它,他们会对简单易懂的方式印象深刻是

13 个答案:

答案 0 :(得分:27)

要遵循的最佳规则是:(可能是每个人都会同意的唯一规则)

  

保持一致!

选择一种风格并坚持下去。始终把你的牙套放在同一个地方。使用类似的命名约定。不要混合标签和空格等......

话虽如此。尝试遵循已经存在的语言惯例通常也是一个好主意。


与人合作时,请确保大家都同意一个风格并坚持下去。如果不这样做,通常一个开发人员会使用自动格式化程序重新格式化文件,然后您可能会有数百个由空格引起的小冲突。

答案 1 :(得分:14)

保持你的差异清洁。

根据以下限制做任何你喜欢的空白:

  1. 不要将空格中的更改与代码中的更改一起提交
  2. 除非你有一个好的(合理客观的)论据,否则不要更改现有文件中的空格。
  3. 为什么?

    处理空白的最重要因素不是文件本身的可读性,而是差异的可读性。当冷汗流入你的脊椎并且思维似乎比平时更难时,你会看到这些差异。

    以上两条规则确保差异清晰可读。在如何处理空白方面保持一致有帮助,但只有在一个完美的世界中它才是万无一失的。这是一件很好的事情,但并不像保持差异一样重要。

    作为优化,您可以尝试与其他人就代码风格达成一致,这样您就不会浪费时间来遵守1和2。

答案 2 :(得分:8)

几乎每个人都会同意:

  • 在逗号后加上空格
  • 在分号后面添加换行符(for循环声明除外)
  • 将所有块的主体({}内的任何内容)缩进一个标签或四个空格(您的选择)
  • 在结束一个块(有一些例外)
  • 的结束}之后添加换行符

除了一些团队坚持的一致性之外,还有很多东西,但这些代码格式的元素是通用的。

基本上有两种方法可以处理if块和具有相同格式的任何内容(forwhileusing等):

if (condition) {
    /* code */
}

if (condition)
{
    /* code */
}

这纯粹是一个偏好问题。选择一种风格并坚持下去(或与团队的其他成员保持一致)。

}规则后的“换行符”的一个可能例外是分组if/else if/else,块,try/catch块或其他紧密连接的块,许多人更喜欢这样的空间:

if (condition) {
    /* code */
} else if (condition2) {
    /* code */
} else {
    /* code */
}

答案 3 :(得分:3)

即使在修改其他开发人员代码时也要保持一致。如果项目的缩进标准(如果有的话)没有规定如何格式化代码,或者您不使用NarrangeResharper之类的自动工具,那么请尝试坚持使用其他开发人员使用的格式。是的,如果必须,请打开空白指示符(对于标签与空格的争论)

答案 4 :(得分:2)

这是一个非常有争议(主观)的话题,因此不会有“正确”的答案。但是,我的建议是谨慎使用垂直空白,因为太多会减少在给定时间在屏幕上看到的代码量。

我个人喜欢使用水平空格来使代码更具可读性:

public void MyMethod( int param1, double param2 ) {
    if ( param1 < param 2 ) {
        member.OtherMethod( param1 );
    }
}

......但实际上,他/她自己。 :)

此外,如果您使用的是Visual Studio或其他支持它的工具,请花些时间设置自动格式化规则,并虔诚地使用自动格式。 :)这将确保您的代码保持清洁和一致。

答案 5 :(得分:1)

最重要的是

  1. 可读“
  2. 对项目工作的其他人可读
  3. 每个人都有自己的细微差别。如果你的老板说你 - 必须 - 使用标签,那么你使用标签。如果公司约定在编译代码上有4个空格,在元数据文件上有2个空格,那就是你所做的。

    但要保持一致,并确保它是可读的。可读性是唯一重要的标准。

答案 6 :(得分:1)

whitespace programming language。一种只有空格的语言

答案 7 :(得分:1)

空格不是创建可读代码的主要因素。事实上,由于作者使用白色空间,我永远不会对“它是多么简单易懂而感到印象深刻”。我可能会走另一条路,认为由于空白的使用不当,某些代码是非常难以理解的,但充其量只会让我不会对你感到失望。

真正的可读性来自模块化的自我记录代码。它源于一致性,字段和功能的智能命名以及设计原则(尤其是分离问题)。这些东西会让我印象深刻。对于空白,我有自动格式化程序。

至于有关空白的最佳做法的建议,我认为其他答案涵盖了所有优点。

答案 8 :(得分:1)

我建议您阅读代码完成清洁代码。这些书将教你如何格式化代码,评论和更多主题。

答案 9 :(得分:1)

答案 10 :(得分:1)

没有“最佳”格式,但如果您使用与大多数其他程序员相同的格式,它们更容易阅读您的代码,并且您更容易阅读其代码!

了解其他程序员如何使用白色sapces的一些指南(来自java世界):

  • 阅读“风格指南”(如the Elements of Java style
  • 阅读众所周知的代码示例(例如,JDK包含所有非本机JRE类的源代码)
  • 看看你的工具支持什么(Eclipse有一个“自动格式”功能,Ctrl + Shift + F);只需让工具缩进你的代码!

答案 11 :(得分:0)

有很多样式或编码规则。我认为没有人会对布局或间距留下深刻的印象,并且会更加关注代码本身。工具可以从一种编码风格转换为另一种编码风格(代码美化),这样您就可以非常安全地选择任何风格。就像jjnguy所说,最重要的是保持一致。

答案 12 :(得分:0)

一般来说,空白是你的朋友。添加它,只要它使代码更具可读性。 Whitespace编译成最有效的代码:none!

总的来说,这是主观的......

打开和关闭花括号(例如{和})单独行。 (javascript的例外情况,其中打开花括号位于创建块的行上。)

在方法之间留空。

如果它有助于提高可读性,请在属性之间留一个空白。

这不是严格的空白问题,而是每行只声明一个变量。不要在声明中堆叠变量。

int i, j;  // stacked declaration - don't do this!

不要在一行上堆叠多个语句。

让您的缩进易于阅读;通常4个空格是好的。

保持线路长度足够短以适合您的显示器。拆分长行代码和缩进延续。

如果参数列表对于单行来说太长,则每行格式化一个参数。

这应该让你开始。