Odyssey Java Coding Standards
For consistency, all Java code in the Odyssey system should follow the following standards.
Version Control
Subversion is used for version control. The repository root is at
svn+ssh://odyssey@core.cs/u/odyssey/svn/odyssey
. Within this everything in the
uw
package is in a directory called
uw
, while everything in the
zava
package is in a directory called
zava
.
Each of these directories has a
trunk
subdirectory, which contains the code in actual use in the
odyssey-2
package, and a
branches
subdirectory, which can be used for editing the code.
Update protocol is to copy from
trunk
to a directory in
branches
, update the branch, and test on a test server. Once the code has been tested and is considered ready to move to production, the changes can be merged back into the trunk.
Whitespace and Layout
Indentation is
one tab per indent level. This allows each user to display indents at their preferred width.
The first line of a Javadoc comment starts with
/**
(of course). The last line consists of
*/
by itself. Lines in between do not have any special markings, but are indented
one tab relative to the first and last line.
Parentheses stick to whatever is inside them, but tend to separate from whatever is outside them. The sticking is stronger than the separation, so multiple open or close parentheses in a row don't have spaces between them. Empty parentheses also have no space between them.
Curly braces go on the same line as any non-curly-brace part of the syntax of the structure of which they are a part. A curly brace will be on a line by itself only if it isn't associated with additional syntax. Empty curly braces have no space between them.
Here is an example that displays all of the above, except for the tab rule:
/** This is a method.
@return The return value.
*/
public int countStuff (int P) {
if ((P < 0) || (P % 2 == 1)) {
int q = count0 (P);
return count1 (P + q);
} else {
int q = count0 (P * 2);
return count2 (P);
}
}
protected Constructor () {}
--
IsaacMorland - 19 Mar 2007