用Java编写“漂亮”代码的标准?

我正在阅读一些关于Java编码标准的书籍。 我一直都喜欢美丽而干净的代码。

但是有一些事情让我烦恼。 例如,方法名称应以小写单词开头,如果它有第二个单词,则应以大写字母开头。 但变量的标准是一回事。 我觉得这有点令人困惑。

所以我问你们,你们的Java编码标准是什么? 喜欢:

  1. 你如何命名对象,方法,类
  2. 如果同一个类中有多个对象,那么如何命名第二个?
  3. 如果在方法的参数中有一个对象,并且在此方法中有同一个类中的另一个对象,那么如何命名它们?
  4. 性能/代码美容,许多小方法或更长的方法的最佳折衷是什么?
  5. 随意说些什么。 =)

  1. 主要遵循Java代码约定 。
  2. 我试着不要说一个对象是什么类。 例如,如果我有五个不同的字符串,每个变量的名称应描述变量所代表的信息/内容,而不是字符串。
  3. 我发现尝试提出变量的变化通常很愚蠢,因为它既存在于方法参数中,又存在于类变量中。 我大多使用这个语法this.theVariable = theVariable使用相同的名称
  4. 方法应该尽可能短:尽可能少的行,并尽可能少的嵌套级别(即最多一个if语句,而不是ifs内的ifs等)
  5. 罗伯特马丁的清洁代码强烈推荐!

只是为了解决一个具体问题,因为它是一个我经常看到人们做出可怕的事情:

如果同一个类中有多个对象,那么如何命名第二个?

按他们的目的,当然。 如果同一个类中有两个不同的对象,则必须将它们用于不同的目的,因此请在此之后命名。 我认为所有这些例子对于大多数读者来说都是不言自明的:

 public void copyAddresses(Customer source, Customer destination) { public void sendMessage(Mailbox sender, Mailbox recipient) { public void changeContactCompany(User contact, Company from, Company to) { public void eatWatermelon(Bowl servingBowl, Bowl bowlForSeedSpitting) { 

或者其他……你明白了。

您应该从官方Java代码约定开始 。

他们将解释为什么需要代码约定,不同的约定,以及您的问题似乎是什么, 命名约定 。 他们也添加了各种例子。

好吧,因为大多数这些都很容易用Google搜索,我将添加自己的标准Java命名实践:

我通常会为它们扩展或实现的类的名称添加后缀。 换句话说,Spring MVC控制器后缀为“Controller”。 这使得在Eclipse中轻松执行Crtl-Shift-R *控制器。

其次,如果我发现我需要在类中聚合一大堆静态方法,我通常用“Utils”后缀该类 。 我从Apache Commons那里得到了这个,并且卡住了。

最后导出的方法做了特殊的昂贵的东西,并且是瞬态的我避免称它们为getXXX。 原因是为了避免序列化程序出现问题。

性能/代码美容,许多小方法或更长的方法的最佳折衷是什么?

“过早优化是所有邪恶的根源” – 唐纳德克努特

记得:

  1. 让它工作
  2. 对了
  3. 快点

如果有必要,你应该只担心性能; 如果当前代码太慢而无法满足要求。

在这种情况下,你应该找到“热点”并优化它们。 检查性能是否足够好。 如果没有,请重复。

看看官方指南