Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Standard for programming 'beautiful' code in Java? [closed]

I'm reading some books about coding standard in Java. I always loved beautiful and clean code.

But there are some things that bother me. For example, a method name should start with a lowercase word, and if it has a second word, it should be start with a uppercase character. But the standard for variables is the same thing. I think this is a little confusing.

So I'm asking you guys, what's your coding standard in Java? Like:

  1. How do you name objects, methods, classes, etc.
  2. If you have more than one object from same class, how do you name the second one?
  3. If you have one object in the argument of a method and you have another object from the same class inside this method, how you do name both of them?
  4. What is the best trade-off for performance/code beauty, a lot of small methods, or some longer methods?
  5. Feel free to say something more. =)
like image 223
Valter Silva Avatar asked Mar 06 '11 13:03

Valter Silva


4 Answers

  1. Mostly following the Java code convention.
  2. I try to not make it matter what kind of class an object is. If I for instance have five different strings, the name of each variable should describe what information/content the variable represents, and not that is is a string.
  3. I find it often silly to try coming up with variations of a variable just because it exists both as a method argument and a class variable. I mostly use the same name with this syntax this.theVariable = theVariable
  4. A method should be as short as possible: as few lines as possible, and as few nested levels as possible (i.e. max one if-statement, and not ifs inside ifs etc.)
  5. Robert Martin's Clean Code is highly recommended!
like image 195
Julian Avatar answered Sep 22 '22 15:09

Julian


Just to address one specific point, because it's one I commonly see people doing horrific things with:

If you have more than one object from same class, how do you name the second one?

By their purpose, surely. If you have two different objects of the same class, you must be using them for different purposes, so name it after that purpose. I think all of these examples would be pretty self-explanatory to most readers:

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

or whatever... you get the idea.

like image 30
Cowan Avatar answered Sep 23 '22 15:09

Cowan


You should start with the official Java Code Conventions.

They will explain why code conventions are needed, different conventions and, what your question seems to be about, naming conventions. They add various examples too.

like image 42
Konerak Avatar answered Sep 21 '22 15:09

Konerak


What is the best trade-off for performance/code beauty, a lot of small methods, or some longer methods?

"Premature optimization is the root of all evil" - Donald Knuth

Remember:

  1. Make it work.
  2. Make it right.
  3. Make it fast.

You should only worry about performance if it is warranted; if the current code is too slow to meet requirements.

In that case you should find the 'hot-spots' and optimize those. Check if performance is good enough. If not, repeat.

like image 38
c_maker Avatar answered Sep 23 '22 15:09

c_maker