aspose file tools*
The moose likes Java in General and the fly likes When is it okay to go against the Style Guide? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "When is it okay to go against the Style Guide?" Watch "When is it okay to go against the Style Guide?" New topic
Author

When is it okay to go against the Style Guide?

Nick Singh
Greenhorn

Joined: Jan 08, 2012
Posts: 11
I'm trying to apply the JavaRanch Style Guide to all my future coding but I'm having a problem understanding how to not use break in the code below. The other loops are pretty ugly in this scenario, and not using break to break out of the foreach loop is inefficient and might create faulty results.

Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 39834
    
  28
It is never OK to go against the style guide, but it is OK to choose a different style guide.
When you get a job, you will (probably) be given a style guide by your employer, which you must adhere to. Now you are on the Ranch, you are permitted to choose any style guide.

The JavaRanch style guide follows structured programming, which was introduced in the late 1960s following two seminal papers by Böhm and Jacopini (Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules) and Dijkstra (Goto considered Harmful), eschewing break and continue. It is always possible to avoid break and continue, except after switch. Interestingly enough, object-oriented programming was also invented in the late 1960s.

Let’s have a look at your method.
Using ints as return values to denote type of login is very old-fashioned, the sort of thing that was cutting-edge in C in 1973! If you are using an int, it would denote how many people are logged in. I would have thought you create a LoggedIn enum with the different values representing whatever 0, 1, 2 represent in the current version. You do not say how your parseLine methods return a Matcher, nor how they would be null. I don’t like returning null, because you might try to use the null and suffer a NullPointerException. And currentPageCache is an ArrayList<String>. Armed with this information, let’s see whether we can get rid of the breaks.Why are you returning a Matcher object and not using it? That seems very strange.

But we have got rid of the breaks.

A lot of people would disagree and say there is nothing wrong withbreak.
Jeff Verdegan
Bartender

Joined: Jan 03, 2004
Posts: 6109
    
    6

Campbell Ritchie wrote:It is never OK to go against the style guide


I'm afraid I'm gonna have to go ahead and disagree with you there. I would say it's okay to go against the style guide when doing so increases readability.
Nick Singh
Greenhorn

Joined: Jan 08, 2012
Posts: 11
Why are you returning a Matcher object and not using it? That seems very strange.

The parseLine(String a, String b) method takes an html line (param1) and attempts to match param2 against it. It's used throughout the script and not just here. The reason it returns a Matcher and not a boolean is because many of the other methods will need to use the Matcher objects methods, it just happens that in this case, whether a match was made or not determines whether the user is logged in or logged out.

And for the null returns, I'm a bit of a greenhorn, totally missed how that would be a problem till you mentioned it. That is against the style guide too! :P

Also, the only reason I never used enums is because I have no experience with them.

for (Iterator<String> it = currentPageCache.iterator(); it.hasNext() && returnVal == 2;/*empty*/)

Ha, never thought of that
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: When is it okay to go against the Style Guide?