有意义的是在团队中任意使用代码格式化模板吗?

时间:2012-06-03 10:23:58

标签: java eclipse coding-style formatting

我正在开发一个Java项目,大约有十个团队开发人员。我们都使用Eclipse作为IDE。

为了在团队中以更一致的方式制作源代码,我想知道使用代码格式化模板是否有意义?我的意思是在检查代码之前只有在Eclipse中使用代码格式化程序。

总的来说,我知道团队将受益于一致的代码风格。问题是 - 它应该作为一种力量规则吗?也许它太僵硬了。

示例1:模板强制最大线宽为80.但如果某些线被分成许多线,则会很难看。确定我知道80是可配置的。

示例2:Eclipse的格式化代码:

int green = 1;
int red = 1;
int orange = 1;

我更喜欢的代码:

int green  = 1;
int red    = 1;
int orange = 1;

所以我的意见是使用代码模板,但不是严格的,违反模板是允许的和必要的。你对此有何看法?

3 个答案:

答案 0 :(得分:2)

我宁愿创建一个汇编规则的文档,让每个人都阅读它。 这些规则有待破解,你并不总是希望你的代码格式化程序能够自动为你完成工作(在我的情况下,这通常会发生在多行if语句中)。

因为你并不总是适用于编码标准,所以每次有人使用自动格式化程序时,他/她都会对你的git / svn / cvs造成严重破坏,改变行,实际上并没有改变。

所以我的建议 - 不要使用自动格式化,并说服/学习/强迫人们编写可读代码。并进行代码审查!

答案 1 :(得分:2)

我们使用的是 checkstyle ,在Eclipse(在编码时帮助开发人员)和Maven plugin中都配置了自动验证和报告。它检查Sun/Oracle Java code conventions(它们是事实上的标准)和其他良好做法。每个人都知道规则,并可以应用一些符合约定的小型自动格式化提示(即间距,......)。我们还进行代码审查。

在大多数情况下,我会尽量避免考虑个人意见,因为这只会导致开发团队的火焰战争。例如,在您的示例2中,Eclipse应用“标准”格式,因此我不会尝试使用其他格式,因为有人认为它可能更容易理解。

在我看来,这有几个好处:

  • 从“集体代码所有权”的角度来看,所有代码似乎都是由同一个人编写的。
  • 在不同项目之间移动开发人员更容易。
  • 代码更易于阅读维护。
  • 如果有人喜欢其他IDE并不重要。

对于新项目,一旦您使用Maven进行自动检查样式验证,我认为进行严格验证是个好主意。也就是说,将代码样式错误视为编译错误(而不仅仅是警告),如果代码样式无效,则构建将被破坏。它在开始时需要一些纪律,但最终会带来更高的代码质量。

答案 2 :(得分:0)

我们将格式化程序配置检查为版本控制,并将格式化程序配置为保存操作。

这需要每个人都使用eclipse,但你已经这样做了。

它具有以下优点:

  • 格式是一致的
  • 没有人花时间格式化代码
  • 没有人争论代码审核中的格式化

它的缺点是格式化程序有时候会做一些奇怪的事情。这可以解释如下:

  • 重写有问题的语句(例如,提取局部变量以缩短行并避免换行)
  • 向格式化程序提供提示(例如,您可以通过//跟踪它们来强制保留换行符
  • 使用开/关标记
  • 禁用代码段的格式化程序