我正在开发一个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;
所以我的意见是使用代码模板,但不是严格的,违反模板是允许的和必要的。你对此有何看法?
答案 0 :(得分:2)
我宁愿创建一个汇编规则的文档,让每个人都阅读它。 这些规则有待破解,你并不总是希望你的代码格式化程序能够自动为你完成工作(在我的情况下,这通常会发生在多行if语句中)。
因为你并不总是适用于编码标准,所以每次有人使用自动格式化程序时,他/她都会对你的git / svn / cvs造成严重破坏,改变行,实际上并没有改变。
所以我的建议 - 不要使用自动格式化,并说服/学习/强迫人们编写可读代码。并进行代码审查!
答案 1 :(得分:2)
我们使用的是 checkstyle ,在Eclipse(在编码时帮助开发人员)和Maven plugin中都配置了自动验证和报告。它检查Sun/Oracle Java code conventions(它们是事实上的标准)和其他良好做法。每个人都知道规则,并可以应用一些符合约定的小型自动格式化提示(即间距,......)。我们还进行代码审查。
在大多数情况下,我会尽量避免考虑个人意见,因为这只会导致开发团队的火焰战争。例如,在您的示例2中,Eclipse应用“标准”格式,因此我不会尝试使用其他格式,因为有人认为它可能更容易理解。
在我看来,这有几个好处:
对于新项目,一旦您使用Maven进行自动检查样式验证,我认为进行严格验证是个好主意。也就是说,将代码样式错误视为编译错误(而不仅仅是警告),如果代码样式无效,则构建将被破坏。它在开始时需要一些纪律,但最终会带来更高的代码质量。
答案 2 :(得分:0)
我们将格式化程序配置检查为版本控制,并将格式化程序配置为保存操作。
这需要每个人都使用eclipse,但你已经这样做了。
它具有以下优点:
它的缺点是格式化程序有时候会做一些奇怪的事情。这可以解释如下:
//
跟踪它们来强制保留换行符