Coding rules

Formatting and presenting Java code

To ease reading, all the source code should adhere to the formatting rules.

The main rules of Lutece are :

  • Parantheses on every new line (C/C++ Style)
  • Indent by 4 characters

The Jalopy tool should be employed with Lutece configuration file to ensure proper formatting of the code.

The general presentation of files should respect the existing ones. (for the java classes, the presentation of the comments, code identation ,use of english language ...)

The naming rules, use of english and comments insertion should be generalized in order to attain complete homogenity.

All the source files must respect the license diffusion in the header.

HTML code: HTML norms

The HTML code of templates and also the HTML generated by Lutece must follow the XHTML 1.0 stricte recommendation, defined by W3C (http://www.w3.org/TR/xhtml1/). The W3C accessibility recommendation should be followed (http://www.w3.org/WAI/, HTML Techniques for WAI 1.0: http://www.w3.org/TR/WCAG10-HTML-TECHS/)

Javascript

The use of javascript must be reduced as far as possible because of the accessibilty problems and the fact that scripts are sometimes desactivated in browsers.

WARNING :

The application must be accessible when scripts are disabled.

The Styles CSS

All page-setting attributes in the HTML code must be managed by the CSS style sheets whose specifications defined by W3C (http://www.w3.org/TR/REC-CSS2/).

The style must maximise use of inheritance and overloading must be avoided.

Comments

All the members of the application( programs, scripts, property files, ...) must be commented. The comments must be written in english language.

For Java programs, all the classes and methods (private,public or protected) must include Javadoc comments describing its features and Javadoc tags @param @return @exception.

@version tags are used to specify the version in which

The new classes and methods of the API will indicate their introduction version with the help of the @since

Deprecated methods have the @deprecated tag.