Java 在任意团队中使用代码格式化程序模板有意义吗?
我正在从事一个Java项目,团队中大约有十名开发人员。我们都使用Eclipse作为IDE 为了使源代码在团队中的风格更加一致,我想知道使用代码格式化程序模板是否有意义?我的意思是,在签入代码之前,唯一一件事就是在Eclipse中使用代码格式化程序 一般来说,我知道团队将受益于一致的代码风格。问题是——它是否应该作为一个强制规则工作?也许它太硬了 示例1:模板强制最大线宽为80。但是如果一些线被分成许多线,那就很难看了。当然,我知道80是可配置的 示例2:Eclipse格式化的代码:Java 在任意团队中使用代码格式化程序模板有意义吗?,java,eclipse,coding-style,formatting,Java,Eclipse,Coding Style,Formatting,我正在从事一个Java项目,团队中大约有十名开发人员。我们都使用Eclipse作为IDE 为了使源代码在团队中的风格更加一致,我想知道使用代码格式化程序模板是否有意义?我的意思是,在签入代码之前,唯一一件事就是在Eclipse中使用代码格式化程序 一般来说,我知道团队将受益于一致的代码风格。问题是——它是否应该作为一个强制规则工作?也许它太硬了 示例1:模板强制最大线宽为80。但是如果一些线被分成许多线,那就很难看了。当然,我知道80是可配置的 示例2:Eclipse格式化的代码: int gr
int green = 1;
int red = 1;
int orange = 1;
我的首选代码:
int green = 1;
int red = 1;
int orange = 1;
所以我的意见是使用代码模板,而不是僵化,违反模板是允许的和必要的。您对此有何看法?我宁愿创建一个文档来汇编规则,并让每个人都阅读它。 规则会被打破,而且您并不总是希望代码格式化程序自动为您完成工作(在我的例子中,这通常发生在多行if语句中) 而且,因为您不会始终应用编码标准,每次有人使用自动格式化程序时,他/她都会对您的git/svn/cvs造成严重破坏,更改行,而实际上没有更改
所以我的建议是——不要使用自动格式化,说服/学习/强迫人们编写可读的代码。而且还要进行代码审查 我宁愿创建一个集合规则的文档,让每个人都阅读它。 规则会被打破,而且您并不总是希望代码格式化程序自动为您完成工作(在我的例子中,这通常发生在多行if语句中) 而且,因为您不会始终应用编码标准,每次有人使用自动格式化程序时,他/她都会对您的git/svn/cvs造成严重破坏,更改行,而实际上没有更改 所以我的建议是——不要使用自动格式化,说服/学习/强迫人们编写可读的代码。而且还要进行代码审查 我们使用的是,在中配置(以帮助开发人员编写代码),并作为一种自动验证和报告的工具。它检查(它们是事实上的标准)和其他良好实践。每个人都知道规则,并且可以应用一些与约定相匹配的小型自动格式化提示(例如,间距…)。我们还进行代码审查 在大多数情况下,我会尽量避免考虑个人意见,因为这只会导致开发团队中的激烈竞争。例如,在您的示例2中,Eclipse应用了“标准”格式,因此我不会因为有人认为它更容易理解而尝试使用另一种格式 我认为这有几个优点:
- 从“集体代码所有权”的角度来看,所有代码似乎都是由同一个人编写的
- 在不同的项目之间移动开发人员更容易
- 代码更易于阅读和维护
- 不管是否有人喜欢其他IDE
- 从“集体代码所有权”的角度来看,所有代码似乎都是由同一个人编写的
- 在不同的项目之间移动开发人员更容易
- 代码更易于阅读和维护
- 不管是否有人喜欢其他IDE
对于新项目,一旦您使用Maven进行了自动checkstyle验证,我认为进行严格的验证是一个好主意。也就是说,将代码样式错误视为编译错误(而不仅仅是警告),如果代码样式无效,则生成将被破坏。开始时需要一点规范,但最终会提高代码质量。我们将格式化程序配置检查到版本控制中,并将格式化程序配置为保存操作 这要求每个人都使用eclipse,但您已经这样做了 它有以下优点:
- 格式是一致的
- 没有人花时间格式化代码
- 没有人会在代码评审中争论格式问题
- 重写相关语句(例如,提取局部变量以缩短行并避免换行)
- 向格式化程序提供提示(例如,您可以通过使用
/
- 使用on/off标记禁用代码段的格式化程序