Conventions de codage pour le projet Opale

Conventions de codage pour le projet Opale

Historique des versions
Version 0.121 Jan 2003
First draft
Version 0.213 Avr 2003
Second draft

Table des matières

Conventions de codage Java

Conventions de codage Java

Méta-règle : .  Si une règle est absente du présent document, se référer aux conventions de codage Java IPSquad version 1.0. Si cette même règle est absente des conventions d'IPSquad alors se référer aux conventions de codage de SUN. Si cette règle est aussi absente de ces dernières conventions de codage alors faites pour le mieux !!!

Les conventions de codage du projet Opale reposent sur les conventions de codage (version 1.0) d'IPSquad avec les amendements ou précisions suivantes :

  • En-tête: Tout fichier contient nécessairement une entête dont le contenu est :

    	      /*
    	      * OPALE is a scientific library under LGPL. Its main goal is to
    	      * develop mathematical tools for any scientist.
    	      *
    	      * Copyright (C) 2002 Opale Group
    	      *
    	      * This library is free software; you can redistribute it and/or
    	      * modify it under the terms of the GNU Lesser General Public
    	      * License as published by the Free Software Foundation; either
    	      * version 2.1 of the License, or (at your option) any later version.
    	      *
    	      * This library is distributed in the hope that it will be useful,
    	      * but WITHOUT ANY WARRANTY; without even the implied warranty of
    	      * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    	      * Lesser General Public License for more details.
    	      * 
    	      * You should have received a copy of the GNU Lesser General Public
    	      * License along with this library; if not, write to the Free Software
    	      * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    	      * 
    	      * You can visit the web site http://opale.tuxfamily.org to obtain more
    	      * information about this program and/or to contact the authors by mail
    	      * developers@opale.tuxfamily.org.
    	      */
    	    

  • Organisation d'un fichier :  Chaque fichier contient, d'abord l'entête de la licence, puis la directive package, puis les imports relatif à l'API Java, puis ceux relatifs aux bibliothèques externes utilisées et enfin ceux du projet.

  • Constructeur par défaut : .  Les objets Opale ont toujours un constructeur par défaut sauf cas exceptionnel où il est alors mis en commentaires

  • Clonage de classes :  Tout objet Java qui hérite de la classe OpaleObject implémente l'interface Cloneable. En somme, tout objet doit redéfinir la méthode clone(). Dans les autres cas il est fortement recommandé d'implémenter Cloneable sauf cas exceptionnel comme le design pattern du singleton par exemple.

  • Variables et calculs.  Les conventions pour les affectations de variables et expressions calculatoires sont : Toute affection ou calcul doit être écrit de manière à faciliter la compréhension des algorithmes utilisés.

  • Noms des interfaces.  Le nom d'une interface et donc le fichier, commencent nécessairement par un i majuscule.

  • Accesseurs.  Le comportement des méthodes getXXX, où XXX est un attribut de classe, est de renvoyer une référence sur l'attribut. Lorsqu'on désire renvoyer une copie de l'attribut, le nom de l'accesseur doit être écrit de la manière suivante: cgetXXX ou getCXXX.

  • Exceptions et assertions.  Lorsque les paramètres passés à une fonction publique sont sémantiquement incorrects, une fonction publique doit lever une exception. Les fonctions publiques ont la responsabilité de passer des paramètres corrects aux fonctions privées. Les fonctions privées utilisent le mécanisme d'assertion, uniquement activé en mode débugage grâce à la classe opale.tools.Debug, de la classe opale.tools.Assert afin de vérifier la cohérence des paramètres. Les fonctions privées ne lèvent pas d'exception.


Opale Team : February 14 2004 19:20:23.






valid xhtml image