1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd">
<document>
<header>
<title>POI Resoluton</title>
<subtitle>Resolution 001 - Minimal Coding Standards</subtitle>
<authors>
<person name="Andrew C. Oliver" email="acoliver@apache.org"/>
</authors>
</header>
<body>
<section title="Resolution 001 - Minimal Coding Standards">
<section title="Majority Position">
<p>
As the POI project has grown the "styles" used have become more
varied, some see this as a bad thing, but in reality it
can be a good thing. Each can learn from the different
styles by working with different code. That being said
there are some universal "good quality" guidelines that
must be adopted on a project of any proportions.
</p>
<p>
Marc Johnson Authored the following resolution:
</p>
<p>
On Tue, 2002-01-08 at 22:23, Marc Johnson wrote:
Standards are wonderful; everyone should have a set.
Here's what I propose for coding standards for POI WRT comments (should I
feel the need, I'll post more of these little gems):
</p>
<ol>
<li>
All classes and interfaces MUST have, right at the beginning, the POI
License (see poi/doc/LICENSE).
</li>
<li>
All classes and interfaces MUST include class javadoc. Conventionally,
this goes after the package and imports, and before the start of the class
or interface. The class javadoc MUST have at least one @author tag
</li>
<li>
All methods that are accessible outside the class MUST have javadoc
comments. In other words, if it isn't private, it MUST have javadoc
comments. Simple getters can consist of a simple @return tag; simple setters
can consist of a simple @param tag. Anything else requires some verbiage
plus all the standard javadoc tags as appropriate. You MUST include @throws
or @exception for any non-runtime exceptions, and you SHOULD document any
runtime exceptions you expect to throw. @throws/@exception tags SHOULD
include an explanation of why that exception would be thrown. If your method
might return null, you MUST say so. An accompanying explanation of the
circumstances for doing so would be nice.
</li>
</ol>
</section>
<section title="Amendments (informal by extension and not by vote)">
<section title="License">
<p>
As opposed to the formerly used POI License which was
based on the Apache Public License, now that POI is part of
Jakarta, use the APL 1.1 for the header. Currently, the
Apache Software Foundation requires us to use the full
long version.
</p>
</section>
<section title="2 cents">
<p>
Tip: No laughing or joking allowed in conversations regarding coding
standards.
Any mail on coding standards will be treated very seriously,
and sent here with a RTFM.
</p>
</section>
</section>
<section title="Dissent">
<p>
The motion was passed unanimously with no negative or
neutral votes.
</p>
</section>
<section title="Comments">
<p>
Andy didn't feel like going through his mail and sucking
out the comments.. If there is anything you feel should
be added here do it yourself ;-).
</p>
</section>
</section>
</body>
</document>
|