Règles de programmation Java
Michel Meynard
Ces règles ont pour objectif :
- d'améliorer la cohérence du code source;
- de permettre la programmation à plusieurs;
- de générer une documentation;
- de faciliter la mise à jour des programmes.
- Français
- Tout le code ainsi que les commentaires sont rédigés en
français. Sauf exceptions : participation à un projet international,
les accesseurs get/set, les méthodes d'interfaces, ... Pourquoi ?
Eviter le mauvais anglais, séparer ce qui est propre au projet des
classes de l'API Java.
- Taille
- des noms ``suffisante'' ou acronyme. Par exemple, on utilisera
le nom de classe Automate plutôt que Auto ! Pour un Automate
d'états Finis Non déterministe, on utilisera AFN.
- Paquetages
- Première lettre en majuscule puis suivantes en minuscules,
avec de nouvelles majuscule à chaque changement de nom, ou acronyme
pour les noms de paquetage trop long. Par exemple, paquetages InterfaceGraphique,
StructureDeDonnées, SD. Pourquoi ? La commande Unix ls affiche les
fichiers ou répertoires dans l'ordre alphabétique; commencer les noms
de répertoire avec une majuscule permettra de les afficher en premier.
De plus, les paquetages du projet seront clairement différenciés des
paquetages de l'API Java qui commencent eux par une minuscule.
- Classes
- Même chose que pour les paquetages (convention Java
habituelle). Par exemple, classe EntiteFaible, ou EF.
- Attributs
- Première lettre en minuscule; un nom est préférable. Exemple
:
int taille;
- Méthodes
- Première lettre en minuscule; un verbe à l'infinitif est
préférable. Exemple : ajouterElement(Element e)
- Public, Protected
- Tout ce qui est public ou protected doit être
commenté par des commentaires destinés à la documentation (javadoc)
/** ... */
- Private, Package
- seront commentés par //
Les types de commentaires suivants doivent être présents avant chaque
définition :
- class
- Description de la classe et @author Prénom Nom, @version Majeur.Mineur.
Par exemple :
-
- /** Arbre binaire d'objets.
* @author Michel Meynard
* @version 2.1
*/
- méthodes
- Description et @param o, @return, @exception. Par exemple
:
-
- /** Retourne le sous-arbre droit sans modifier l'arbin.
*@return le sous-arbre droit.
*@exception ArbinVideException levée sur appel avec un Arbin vide.
*/
- attributs
- Description
Les autres commentaires sont destinés aux programmeurs. Il est souhaitable
qu'ils commencent tous à la même indentation minimum. Cette dernière
doit être au moins à la colonne 32 (comment-column d'emacs). Par exemple
:
-
- import java.awt.*; // Abstract Windowing Toolkit
import java.io.*; // File, ...
import Dialogue.*; // Avertissement, ...
Une indentation de 2 caractères ``à la C'' doit être utilisée.
Par exemple :
-
- while (true){
i=i+1;
j=j-1;
} // fin du while
Chaque classe doit être testée séparément. Ceci peut être réalisé
dans un premier temps dans la méthode main() de la classe. Si la classe
C est complexe, une classe de test nommée TestC devra être réalisée
dans le même répertoire.
Chaque paquetage doit être testé grâce à une classe de test situé
dans ce paquetage et nommée TestMonSousProjet1 pour le paquetage MonProjet.MonSousProjet1.
Enfin, une classe de test doit être réalisée pour le projet entier
: TestMonProjet dans le paquetage MonProjet.
En cas de réalisation en groupe, l'outil CVS devra être utilisé pour
améliorer l'efficacité du travail.
Tout projet doit être accompagné d'un rapport écrit contenant :
- la description en français du projet : objectif, limitations, organisation,
... ;
- une analyse UML comprenant au minimum un diagramme de classe UML;
- une documentation java produite par javadoc :
-
- javadoc -d MonRepDoc/MonProjet MonProjet MonProjet/MonSousProjet1 MonProjet/MonSousProjet2
- le listing de l'ensemble des programmes;
- une disquette contenant le source, les .class et un makefile dans
le répertoire principal permettent de lancer l'exécution du principal
par la commande : make run.
Règles de programmation Java
This document was generated using the
LaTeX2HTML translator Version 99.2beta8 (1.42)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -no_subdir -split 0 -show_section_numbers /tmp/lyx_tmpdir10059zhEz4B/lyx_tmpbuf10059ULVYzg/progJava.tex
The translation was initiated by Michel MEYNARD on 2002-03-14
Michel MEYNARD
2002-03-14