<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!--*** This is a generated file. Do not edit. ***--> <link rel="stylesheet" href="../skin/tigris.css" type="text/css"> <link rel="stylesheet" href="../skin/mysite.css" type="text/css"> <link rel="stylesheet" href="../skin/site.css" type="text/css"> <link media="print" rel="stylesheet" href="../skin/print.css" type="text/css"> <title>POI Resoluton</title> </head> <body bgcolor="white" class="composite"> <!--================= start Banner ==================--> <div id="banner"> <table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0"> <tbody> <tr> <!--================= start Group Logo ==================--> <td align="left"> <div class="groupLogo"> <a href="http://poi.apache.org"><img border="0" class="logoImage" alt="Apache POI" src="../resources/images/group-logo.jpg"></a> </div> </td> <!--================= end Group Logo ==================--> <!--================= start Project Logo ==================--><td align="right"> <div class="projectLogo"> <a href="http://poi.apache.org/"><img border="0" class="logoImage" alt="POI" src="../resources/images/project-logo.jpg"></a> </div> </td> <!--================= end Project Logo ==================--> </tr> </tbody> </table> </div> <!--================= end Banner ==================--> <!--================= start Main ==================--> <table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs"> <tbody> <!--================= start Status ==================--> <tr class="status"> <td> <!--================= start BreadCrumb ==================--><a href="http://www.apache.org/">Apache</a> | <a href="http://poi.apache.org/">POI</a><a href=""></a> <!--================= end BreadCrumb ==================--></td><td id="tabs"> <!--================= start Tabs ==================--> <div class="tab"> <span class="selectedTab"><a class="base-selected" href="../index.html">Home</a></span> | <script language="Javascript" type="text/javascript"> function printit() { if (window.print) { window.print() ; } else { var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; document.body.insertAdjacentHTML('beforeEnd', WebBrowser); WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = ""; } } </script><script language="Javascript" type="text/javascript"> var NS = (navigator.appName == "Netscape"); var VERSION = parseInt(navigator.appVersion); if (VERSION > 3) { document.write(' <a title="PRINT this page OUT" href="javascript:printit()">PRINT</a>'); } </script> | <a title="PDF file of this page" href="res001.pdf">PDF</a> </div> <!--================= end Tabs ==================--> </td> </tr> </tbody> </table> <!--================= end Status ==================--> <table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0"> <tbody> <tr valign="top"> <!--================= start Menu ==================--> <td id="leftcol"> <div id="navcolumn"> <div class="menuBar"> <div class="menu"> <span class="menuLabel">Apache POI</span> <div class="menuItem"> <a href="../index.html">Top</a> </div> </div> <div class="menu"> <span class="menuLabel">About</span> <div class="menuItem"> <a href="index.html">About</a> </div> </div> <div class="menu"> <span class="menuLabel">Resolutions</span> <div class="menuItem"> <span class="menuSelected">Coding Standards</span> </div> </div> </div> </div> <form target="_blank" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="poi.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit"> <br> Search poi</td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td> </tr> <tr> <td colspan="3"><img height="7" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td> </tr> <tr> <td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td> </tr> </table> </form> </td> <!--================= end Menu ==================--> <!--================= start Content ==================--><td> <div id="bodycol"> <div class="app"> <div align="center"> <h1>POI Resoluton</h1> </div> <div class="h3"> <div class="h3"> <h3>Resolution 001 - Minimal Coding Standards</h3> </div> <div class="h4"> <h4>Majority Position</h4> </div> <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> <div class="h4"> <h4>Amendments (informal by extension and not by vote)</h4> </div> <div class="h2"> <h2>License</h2> </div> <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> <div class="h2"> <h2>2 cents</h2> </div> <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> <div class="h4"> <h4>Dissent</h4> </div> <p> The motion was passed unanimously with no negative or neutral votes. </p> <div class="h4"> <h4>Comments</h4> </div> <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> <div id="authors" align="right">by Andrew C. Oliver</div> </div> </div> </div> </td> <!--================= end Content ==================--> </tr> </tbody> </table> <!--================= end Main ==================--> <!--================= start Footer ==================--> <div id="footer"> <table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0"> <tbody> <tr> <!--================= start Copyright ==================--> <td colspan="2"> <div align="center"> <div class="copyright"> Copyright © 2002-2007 The Apache Software Foundation. All rights reserved. </div> </div> </td> <!--================= end Copyright ==================--> </tr> <tr> <td align="left"> <!--================= start Host ==================--> <!--================= end Host ==================--></td><td align="right"> <!--================= start Credits ==================--> <div align="right"> <div class="credit"></div> </div> <!--================= end Credits ==================--> </td> </tr> </tbody> </table> </div> <!--================= end Footer ==================--> </body> </html>