• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Identifiers: Inscrutable versus A Little Longer?

 
Ranch Hand
Posts: 76
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I've been noticing in some posts from other college students that identifiers and, at times, indecipherable to me (another Java Beginner). My textbook and the three Java for Dummies books I own indicate that identifiers should be meaningful. Obviously, the experienced people here on Java Ranch understand the identifiers, because their understanding of Java is far greater than mine. It's similar to be able to untangle someone's typos (in English-language posts) when you are fluent in English.

Anyway, my question is this. (Yes, I know you were wondering when I would get around to it.) In the Real World of Programming for a Living, what are the guidelines for creating and/or using meaningful identifiers? For example, I've worked in Retail, therefore I know that stock isn't something you buy through a broker as an investment; it is synonamous with inventory. Also, Cost is the same as Price but both are ambiguous, as you can have wholesale, retail, or sales prices/costs.

I created identifiers like retail, salesPrice, unitCost, and inStock because of my past experience. However, my instructor gave examples of code with identifiers like cost. Now, I don't want to waste my time nitpicking something that is a waste of time. I really just want to understand.

Any advice, suggestions, or other pearls of wisdom (as I do not count as swine, these are safe to dispense )?
 
Bartender
Posts: 9626
16
Mac OS X Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
An identifier should be 'just right'. Not so long that you get tired typing it, but long enough to be unique and understood.
For example, if you have only one value that is a cost, as your instructor probably did, 'cost' is probably Good Enough. If you are working on code that deals with wholesale, retail, discounted and sale costs, you will need more explicit identifiers.
One-letter names ('i' or 'x') are Good Enough for temporary values like loop indexes that have no other meaning.
 
Ranch Hand
Posts: 282
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The most important criterion (IMO) is to think how your class, field and method names will read in your code. Well-chosen, meaningful identifiers will effectively self-comment the actual code minimizing the need for
additional code documentation. Good code should read almost like English. If one word is adequate to represent something, then that is what you should use. Otherwise, add additional descriptive words.

That said, my rules of thumb for naming are these:

1) Use the terminology associated with your domain (business environment). If your business uses the term "stock" for "inventory" then that is what your code should use. I attempt to code such that, if a business analyst looks at my code, he/she can readily make sense of it (without necessarily understanding the particulars of the code).

2) Identifiers should be exactly what they represent. Avoid ambiguity. This goal is not always achieved in the first iteration but the great advantage of modern IDEs is that you can easily refactor/rename to do so.

3) Identifiers should rarely be more than 3 words, not counting "get" and "set" for method names.

4) Identifiers should ideally be 1 or 2 words. Keep it short (but within reason).

5) Avoid using long words in identifiers. I try to avoid words over 8 characters in length.

Don't think you have to get it right the first time! I've been coding for some 27 years now and I still frequently change my mind regarding the names I have chosen. For that reason I love the refactor options in Eclipse/RAD!
 
Robin Lane
Ranch Hand
Posts: 76
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Joe and Jay, thank you! Wonderful advice, and I really appreciate it. It makes sense, its easy to understand, and simple to follow.

Thanks!
reply
    Bookmark Topic Watch Topic
  • New Topic