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

时间:2011-03-06 13:31:53

标签: java coding-style

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

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

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

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

6 个答案:

答案 0 :(得分:15)

  1. 主要关注Java code convention
  2. 我尽量不要让对象变成什么类。例如,如果我有五个不同的字符串,则每个变量的名称应描述变量所代表的信息/内容,而不是字符串。
  3. 我觉得尝试提出变量的变体往往是愚蠢的,因为它既存在于方法参数中,又存在于类变量中。我大多使用这个语法this.theVariable = theVariable
  4. 使用相同的名称
  5. 方法应该尽可能短:尽可能少的行,并尽可能少的嵌套级别(即最多一个if语句,而不是ifs内的ifs等)。
  6. 强烈推荐
  7. Robert Martin's Clean Code

答案 1 :(得分:6)

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

  

如果同一个班级有多个对象,你如何命名第二个?

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

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) {

或其他......你明白了。

答案 2 :(得分:3)

您应该从官方Java Code Conventions开始。

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

答案 3 :(得分:2)

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

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

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

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

答案 4 :(得分:2)

  

什么是最好的权衡取舍   性能/代码美,很多   小方法,还是一些较长的方法?

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

记住:

  1. 让它工作
  2. 将其设为正确
  3. 让它快速
  4. 如果有必要,你应该只担心表现;如果当前代码太慢而无法满足要求。

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

答案 5 :(得分:1)