是否有任何广泛的,现代的Java编码约定?

Sun的“ Java编程语言代码约定 ”最后更新于1999年4月。十年后,语言和一般使用模式发生了很大变化。 是否有更新,广泛采用的标准?

大多数指南都忽略了指定文件编码和行结尾。 Sun建议使用混合标签和空格。 Eclipse IDE默认使用Eclipse的标准,它只是标签。 Maven风格指南仅限空格。 许多样式指南,如JBoss ,遵循Sun的指导原则,但更喜欢K&R支架而不是OTBS 。 每个Apache项目都有自己的样式指南,每个项目之间略有不同。

四个空间 – 这是上帝使用的。

您真正需要遵循的唯一编码标准是您的项目团队所接受的。 您可能不同意制表符而不是空格,但如果这是您团队的编码惯例,则最好遵循它。

虽然它可能看起来过时了,但核心语言本身并没有多少添加(尽管这些库已经有很多新增function)

我记得的那些是现在的enum和generics,其余的已经在文档第一次写入时已经存在。

  • 总是使用4个空格。

  • 不要使用K&R或Allman:虽然C,C ++和C#完全可以接受,但Java并不总是如此(除非项目明确决定使用它)。 在Java中使用K&R或Allman在视觉上是令人不愉快的,因为它不会在C中使用它。

  • 始终使用大括号,包括单行语句。

一般来说,尽量不要在编程语言之间混合样式。 这就像自然语言中的口音发音,您可能会被理解,您可以在其中阅读和书写,并且在语言中具有可行的水平,但缺乏发音只会惹恼母语人士。

问题不在于您的编码风格,而在于现有的编码标准。

我发现欧洲空间局Java编码标准 (pdf)( alt链接 )似乎是最新和全面的,但我不确定采用的范围有多广泛。

Ray Ontko有一个Java编码标准参考书目 。 但很难将任何单一标准确定为“广泛采用”。

考虑使用IDE的重新格式化机制默认使用的那个。 从长远来看,将为您节省大量时间。

我们在Eclipse中启用保存操作并勾选Format Source,以便始终重新格式化源。 这意味着重新格式化只会更改自上次保存文件以来发生的事情。 源控制历史很好。

您可以自然地花时间并定义自己的格式,但使用Eclipse标准往往更容易 – 对我们来说没问题。

检查Java样式的元素

官方编码约定可在以下URL找到: http : //www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html

BSD / Allman是唯一体面的缩进风格。 它符合大括号的基本规则 – 如果它们位于不同的行上,它们应该位于同一列上。 与K&R相比,甚至Horstmann也是可以忍受的。

如果在记事本中编码,请务必使用大括号。 否则,由于IDE的自动缩进function,它是无用且烦人的。