新项目的Java格式约定

新项目的Java格式约定,java,coding-style,code-formatting,Java,Coding Style,Code Formatting,我正在启动一个新项目,该项目以后可能会开源,并且/或者至少会在其生命周期中获得一些外部贡献者 我现在正在思考代码样式/自动格式化的最佳方法是什么。我强烈支持只将自动格式化的代码提交到项目中,因为这消除了单个开发人员之间的差异,并有助于保持单个提交不存在重新格式化问题 我的第一种方法是在项目中使用Eclipse内置样式,但我真的不喜欢默认样式,因为我认为80个字符的换行符对于今天的屏幕分辨率来说已经过时了。而且,顾名思义,它只对使用Eclipse作为IDE的人可用 因此,我还考虑使用我自己的格式化

我正在启动一个新项目,该项目以后可能会开源,并且/或者至少会在其生命周期中获得一些外部贡献者

我现在正在思考代码样式/自动格式化的最佳方法是什么。我强烈支持只将自动格式化的代码提交到项目中,因为这消除了单个开发人员之间的差异,并有助于保持单个提交不存在重新格式化问题

我的第一种方法是在项目中使用Eclipse内置样式,但我真的不喜欢默认样式,因为我认为80个字符的换行符对于今天的屏幕分辨率来说已经过时了。而且,顾名思义,它只对使用Eclipse作为IDE的人可用

因此,我还考虑使用我自己的格式化程序设置,并将导出的设置检查到项目的存储库中,以便任何贡献者都可以获取它们。同样,这将迫使大多数人使用Eclipse,因为我不知道任何可以由多个IDE读取的格式定义

在其他项目中如何处理这个问题?我搜索了一些github存储库,但在我看来,许多项目或多或少都忽略了这个问题


我知道这个问题可能是堆栈溢出的边界线,因为我不知道是否可能有一个明确的答案,也不知道这是否会引发讨论,但这是我在开始一个新项目时经常遇到的问题。

当屏幕变宽时,它们似乎不会变高

无论其他驱动程序是什么,都要保留垂直空间。如果可以,将
{
}
放在包含其他语言关键字的行上

在任何情况下,在编译链中使用maven插件或其他自动化工具来强制执行您关心的规则。这样的话,他们是毫不含糊的


也不要制定太多无关紧要的规则。每个规则都需要花费时间才能使代码符合要求。

我理解您的担忧,我认为最好的方法是创建代码格式首选项文件,该文件可以与项目一起共享

例如,在使用文件浏览器的eclipse中,导航到//.settings并将org.eclipse.jdt.core.prefs复制到新位置。此文件包含所有格式设置。因此,这可以共享以保持代码格式的一致性。 如果不是这样,那么您可能必须依赖特定于编辑器的代码格式


如果我分享的内容不符合要求,我肯定会期待其他专家的意见。

是的,这是离题的。寻找eclipse的模板。我肯定谷歌一定有一个。否则,默认的JavaEclipseOne相当不错(iirc),尽管现在屏幕更宽了,但大多数人一次不能扫描超过40个字符。一旦超过280个字符左右,大多数人的短期记忆就会崩溃。我喜欢80个字符的限制,因为我可以快速扫描代码,如果需要研究,我可以将代码打印在纸上。您可以在构建中添加checkstyle步骤以强制执行所需的代码样式,格式化规则也可以作为格式化程序规则导入到因特利捷/Eclipse中:注意,这与一些语言直接冲突,将它们放在单独的行上可以方便使用CLI工具(C++,我在看着你!),但是java不是C++,因此,不要将您的规则集视为其他语言中有意义的规则集的主题(没有匈牙利符号等)。我尊重您的意见,并希望将我的
{
在下一行。我自由地使用空格,当它有助于将代码分解成我能理解的块时。无论如何,我的观点不是我是对的,你是错的,而是这个问题完全是基于观点的!不一致是好的。我也使用空格将代码分解成块。我说的是把开头的cu在if语句和around-else语句中,右大括号都在自己的行上。在我看来,这是对空间的浪费