您应该使用哪种Java代码样式?

如此……您正在考虑为团队添加或更改Java样式指南吗? 您是否坚持使用久经考验的Sun指南? 还是已经二十岁了,这太过时了吗? Google风格怎么样? 但是那些两个空格的缩进! 也许AOSP? 推特? 您可以接受IntelliJ随附的默认设置吗?

啊! 太多问题!

Let's take a step back

您有选择。 而且,在2019年,没有一个广泛可用的选项能够真正解决lambda和流之类的Java 8+功能。 您可能必须选择一个基础并从那里发展。 以下是一些选项:

Ťhe Original Sun Java Style Guide

Google’s Java Style Guide

一种ndroid Open Source Project (AOSP) Style Guide

Ťwitter’s Java Style Guide

Ťhe JavaRanch Style Guide

Food for thought

XKCD #1513: Code Quality

在进行选择和决定之前,我认为您应该遵循三个步骤。

1. Define your goal

当然,我们所有人都希望使用一致的代码。 在这种情况下,任何选项都可以。 但是,获得样式指南的实际目标是什么? 要在团队之外共享代码? 也许在公司之外? 也许您有多个目标?

在我目前的团队中,我们将目标定义为60%的一致性(因此,只要有样式指南,大多数情况下我们就不在乎),30%的一致性,以便我们与紧密合作的其他几个团队保持一致, 并允许我们的开发人员及其开发人员跨团队跨界流畅地工作,而10%的人使用哪种工具来支持遵循代码风格。

您可能还有其他考虑。

2. Consider the environment

通过这个,我的意思是考虑您查看代码的位置。 我猜您正在执行代码审查。 怎么样? 在Gitlab中? 那是一个用于查看代码的相当不错的环境,您可能不太在乎选择哪种样式。

Do you want to be able to view it in a tool like FishEye? Does code ever make it into your Jira cards? What about on mobile? Do you ever look at code there? Does anyone ever open your code in a plain text editor?

考虑这些事情并考虑长线可能会做什么,或者类似地使用大量垂直空间可能会做什么,这可能是明智的。

XKCD 1926: Bad Code

3. Consider tooling

Finally, how will you support code style in your project? If you use a build tool like Maven, there are some plug-ins like the fmt-maven-plugin to autoformat code when builds are ran (fmt-maven-plugin uses Google style).

这可能感觉有些极端。 您可能会很乐意让您的IDE支持这一点,在这种情况下,您将希望保留用于导入到Eclipse或IntelliJ的代码样式设置的XML文件。

这完全取决于您。

Thoughts on lambdas and streams

话虽如此,您可能还想解决如何使用Java 8+特性(例如lambda和stream)的问题。 我问Stuart Marks Oracle正在使用什么。 标记是技术人员咨询成员适用于Oracle和Java布道者。

马克斯(也许不足为奇)有很多想法!

所以你有它。 大量关于现代Java的好建议!

只是,无论您做什么,都不要在标签上争论空格而陷入困境!

Scene from Silicon Valley

from: https://dev.to//scottshipp/which-java-code-style-should-you-use-1k5a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值