next_inactive up previous


Règles de programmation Java

Michel Meynard

1 Introduction

Ces règles ont pour objectif :

2 Règles de notation

2.1 Nommage

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)

2.2 Commentaires

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 //

2.2.1 Commentaires de documentation

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

2.2.2 Autres commentaires

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, ...

2.3 Indentation

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

3 Test

3.1 Test unitaire

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.

3.2 Test d'intégration

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.

4 CVS

En cas de réalisation en groupe, l'outil CVS devra être utilisé pour améliorer l'efficacité du travail.

5 Projet

Tout projet doit être accompagné d'un rapport écrit contenant :

javadoc -d MonRepDoc/MonProjet MonProjet MonProjet/MonSousProjet1 MonProjet/MonSousProjet2

À propos de ce document...

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


next_inactive up previous
Michel MEYNARD 2002-03-14