Suivi et gestion de la documentation
Nom |
Date |
Signature |
|
Rédacteur |
Stéphane Bouchet |
20/04/2006 |
|
Approbateurs |
Opération |
Version |
Date |
Description |
Création |
1.0 |
11/07/2003 |
|
Ajout des règles de codages |
2.0 |
07/07/2004 |
|
passage html |
2.1 |
1/10/2005 |
|
Mise à jour
|
3.0 | 20/04/2006 | Ajout de l'utilisation des fichiers de config Eclipse. Ajout de "bonnes pratiques". |
Pour validation / information |
|
Ce document décrit une liste de conventions de codage requise pour le projet CASTORE. Ces conventions de codages reprennent celles établies par SUN (voir document annexe, Official Sun Java Coding Conventions ). Si des conventions ne sont pas reprises ici, celles de Sun s'appliquent par défaut.
Tout le codage et le nommage doit se faire en langue française autant que possible.
Le projet CASTORE étant découpé en modules et en projets , il existe une grande quantité de packages. Tout les modules sont des sous packages de fr.emn.castor . Les packages doivent suivre la structure suivante :
fr.emn.castor.<NomDuModule>.<ComposantDuModule> s'il s'agit des nouveaux modules dans le 'Core'
Sinon le package doit contenir l'information du projet auquel il appartient : applets, servlets, ... voir les différents projets.
Le nommage des packages doit suivre les spécifications de Sun (Chapitre 9).
Le terme ComposantDuModule est laissé libre au développeur. Les noms des packages suivants sont par contre obligatoires :
fr.emn.castor.<NomDuModule>.metier |
Contient la logique métier du module |
Pour les interfaces, faire précéder le nom par un i majuscule « I » .
Exemple : IIndexation, IUtilisateur...
Pour les classes Abstraites, faire précéder le nom par un A majuscule, ou par le mot "Abstract".
Exemple : ATrans, AbstractEngine...
Pour les exceptions faire suivre le nom par " Exception " .
Exemple : WorkflowException
Pour les méthodes de type 'getter – setter', la convention est la suivante :
prédicats :
Par défaut s'applique les conventions de Sun (Chapitre 9) .
Pas de nouvelle ligne pour l'ouverture de parenthèses. Les parenthèses fermantes se font sur une nouvelle ligne. Exemple :
if (size < currentSize) {
size = inStream.available();
} catch (IOException e) {
}
} else if (size == currentSize) {
++size;
} else {
--size;
}
Toujours des parenthèses pour les expressions if sur une seule ligne :
if (log.isDebugEnabled()) {
log.debug("logging...");
}
Pas de tabulations. 4 espaces. Ceci pour éviter des conflits entre éditeurs de code.
Les opérateurs doivent être entourés par des espaces :
a += c + d;
Les commentaires JavaDoc doivent exister pour toutes les variables, les méthodes, mêmes privées.
Ne pas utiliser de System.out. Utiliser le système de log inclus avec le projet :
private static Log
log = LogFactory.getLog(MyClass.class);
public void someMethod()
{
if (log.isDebugEnabled()) {
log.debug("some debug text");
}
}
Ne pas utiliser de log lorsque la classe est persistante !
Il ne doit pas y avoir d'utilisation de logging dans la facade. Par contre il est obligatoire d'utiliser le commons-logging pour tout le reste de l'application.
Utiliser les noms de classe complet. Pas de « * ».
Toujours implémenter le constructeur par défaut. Si celui-ci ne doit pas être utilisé, changez sa visibilité en private.
Il existe des outils pour formater le code source disponibles par défaut dans Eclipse. Pour les utiliser il suffit de faire un clic droit dans le code source d'une classe, puis « formater ». Le paramétrage du formatage se fait via le menu préférences. (Fenêtre/Préférences/Java/Module de formatage du code). Il suffit d'importer les conventions pour que celles-ci soient automatiquement appliquées lors du formatage du code.
Fichier de configuration du formatage sous Eclipse
Remarque : cet outil ne fait QUE du formatage de code (tabulations, parenthésage).
Un autre outil par défaut est l'utilisation des templates pour ajouter du code de façon automatique. De même que précédemment, il suffit d'importer ces templates pour que celles ci soient automatiquement appliquées. (création de nouveau fichier par ex. )
Fichier de Templates sous Eclipse
Enfin, il existe un troisième outil, permettant de regrouper les imports de façon automatique.
Fichier de configuration des imports sous Eclipse
Il existe par ailleurs des plugins pour Eclipse qui permettent de faire de la vérification de style de codage. Celui que nous utiliserons est CheckStyle. Par défaut, celui-ci applique les conventions de codage de SUN à des applications JAVA. le fichier de configuration utilisé pour CASTORE se trouve a la racine du projet 'Maven', appelé castore_checks.xml.