Thanks for getting that list of examples together. That's a pretty good mix!
I went through these too without looking at Todd's comments first to avoid
prejudice. Here's my results..

1) ugly dangling ')'
6-7) would prefer 4 spaces before 'throws'
11-12) ok.
16-17) ok. I don't think we should mandate one of 11-12 over 16-17 or vice
versa. Both seem good.
22-23) ok. In the same spirit as the former.
27-28) I think indent should be "four spaces" or "align to the (", but not
some other random distance.
32--35) A bit C-ish, but okay? Would prefer to condense this to look like
16--17
39--46) please don't staircase
50--52) Would prefer one fewer space on those; indent only to the '('
56--59) The dangling ')' again looks lonely.
62--67) This just combines two styles I've previously been unhappy about.

So I think we're mostly in accordance.
I'm less happy about the example on 32--35 than he is, but I also don't
think it's a bad thing necessarily.

I also second the vote for wikification of examples (both good and bad).

While we're on the subject of style, and, without trying to open a *huge*
can of worms... I've got two other grievances worth mentioning:

First, I've been picked on by others for using this brace style:

if (foo) {
  stmt;
} else {
  otherstmt;
}

and have been told to drop the braces because they look "ugly" if stmt or
otherstmt are only one line.

In http://java.sun.com/docs/codeconv/html/CodeConventions.doc6.html#449though,
the sun coding conventions *clearly* say that braces are always to
be used. Can we get a ruling here? My vote is to do as the SCC says.
(Rationale: if we later expand otherstmt to two lines, or expand stmt to
include a nested if, we might accidentally inject a bug.) If we're going to
allow "dangling one-liners" though, we need to clearly state this deviation
in our own style guide.

And second, what's our story on tabs vs. spaces? In
http://java.sun.com/docs/codeconv/html/CodeConventions.doc3.html#262 they
claim "The exact construction of the indentation (spaces vs. tabs) is
unspecified." So much for standards! :P I know that we have a
well-established guideline that we indent by 2s, not by 4s. But beyond that,
I've always used spaces all around. My .vimrc includes:
set tabstop=2
set shiftwidth=2
set expandtab

Various Hadoop sources mix tabs and spaces -- sometimes on the same line!
Moving forward, can we pick one or the other for all new/modified source?
The Hadoop style guidelines do not specify one or the other. My vote is for
spaces all around. At least within the MapReduce codebase, it seems as
though there's only a few instances of tabs really remaining:

aa...@jargon:~/src/git/mapred/src/java$ ack '\t' | wc -l
144

.. so it seems as though the consensus is pretty existent. I wouldn't mind
if we formally codified it though.

- Aaron


On Fri, Nov 20, 2009 at 11:01 AM, Konstantin Boudnik <c...@yahoo-inc.com>wrote:

> > So, IMO, the goal should be the examples on 10-24 or 31-36.
>
> +1 I agree with Todd: the highlighted snippets are most appropriate as Java
> coding style.
>
>
> On 11/20/09 10:54 , Todd Lipcon wrote:
>
>> My opinions on the groups of line numbers from that pastebin:
>>
>> 1-3: Definitely not - no reason for ) on its own line
>> 5-8: no, "throws" should be indented
>> 10-13: I think this is acceptable
>> 15-19: also acceptable IMO
>> 22-24: acceptable - lines wrapped due to column limit should indent their
>> wrappings
>> 26-29: bad
>> 31-36: seems the same as 16-19, so OK
>> 39-47: bad - bizarre
>> 50-53: bad - seems like a mistaken space
>> 56-59: same as 1-3, seems bizarre
>> 62-66: also bizarre like 50-53
>>
>> So, IMO, the goal should be the examples on 10-24 or 31-36.
>>
>> If others agree, perhaps we should put some of these examples on the wiki?
>>
>> -Todd
>>
>> On Fri, Nov 20, 2009 at 9:04 AM, Cosmin Lehene<cleh...@adobe.com>  wrote:
>>
>>  Hi,
>>>
>>> I was trying to make a patch and looking over the Hadoop guidelines for
>>> code at http://wiki.apache.org/hadoop/CodeReviewChecklist, trying to
>>> follow the conventions.
>>>
>>> Looking through code I found a few "patterns", however, these differ even
>>> in the same class sometimes. Here's a collection of method declaration
>>> styles I gathered from 2 or 3 files: http://pastie.org/707389
>>>
>>> I have to admit Sun's code conventions are a bit unclear too, so maybe a
>>> list of settings for the IDE like tab size, indent, continuation indent,
>>> exceptions to the rule, etc. would help.
>>>
>>> Cosmin
>>>
>>>

Reply via email to