Iremia, R.Courdier
Chapitre 3 : Conventions de codage
Conventions de codage
Java © Rémy Courdier (révision M. GANGAT)
1996 - 2003 - Conventions - Version du cours 3.0
1
Sommaire Conventions de codage Java Intérêt Principales Conventions JavaDoc Références
Intérêt 80% de la durée de vie d’un logiciel est consacrée à la maintenance Un logiciel est rarement maintenu par le même auteur tout au long de sa vie
Références
Les conventions de codage améliorent la lisibilité du code, permettant de comprendre plus rapidement du nouveau code
Code Conventions for the JavaTM Programming Language http://java.sun.com/docs/codeconv/
© Rémy Courdier (révision M. GANGAT)
14/02/2003
1996 - 2003 - Conventions - Version du cours 3.0
2
1
Iremia, R.Courdier
Principales conventions de nommage Organisation des fichiers Le fichier .java doit avoir le même nom que la classe public qu’il décrit 1 fichier .java par classe, même pour celle contenant le main() exception pour les inner classes
Eléments de base paquetages classes
minuscules MajusculePourLaPremiereLettreDeChaqueMot
terminé par Imp (si besoin de la distinguer d’une interface)
interface terminé par ifc
méthodes constantes variables
© Rémy Courdier (révision M. GANGAT)
MajusculePourLaPremiereLettreDeChaqueMot (si besoin de la distinguer d’une classe)
minusculePourLaPremiereLettre MAJUSCULES_AVEC_SOULIGNE minusculePourLaPremiereLettre
1996 - 2003 - Conventions - Version du cours 3.0
3
Tags de la javadoc Documentation des ‘ Packages ’ : @see, {l@link}, @since
Documentation des Classes et Interfaces: @see, {l@link}, @since, @depredicated, @author, @version
Documentation des Attributs : @see, {l@link}, @since, @depredicated, @serial, @serialField
Documentation des Méthodes : @see, {l@link}, @since, @depredicated, @param, @return, @throws (@exception), @serialData
© Rémy Courdier (révision M. GANGAT)
14/02/2003
1996 - 2003 - Conventions - Version du cours 3.0
4
2
Iremia, R.Courdier
Exemple de codage pour une classe Pour une classe /** classe .java * Définition de … * <pre> * Date Auteur Libelle * ------------------------------------------------* 1/3/98 R.Courdier creation * 1/4/98 R.Courdier modif. de la classe maClasse * * @author R.Courdier * @version 1.0 3/4/98 * @see awt.Button */ class <nomDeClasse> { ... } © Rémy Courdier (révision M. GANGAT)
1996 - 2003 - Conventions - Version du cours 3.0
5
Exemple de codage pour une méthode Pour une méthode /** * Returns the character at the specified index. An index * ranges from 0
to length() -
. * * @param index the index of the desired character. * @return the desired character. * @exception StringIndexOutOfRangeException * if the index is not in the range 0
* to length()-1
. * @see java.lang.Character#charValue() */ public char charAt(int index) { ... }
© Rémy Courdier (révision M. GANGAT)
14/02/2003
1996 - 2003 - Conventions - Version du cours 3.0
6
3
Iremia, R.Courdier
La commande Javadoc javadoc -sourcepath /jdk/src/classes -d /jdk/build/api -use -splitIndex -windowtitle $(WINDOWTITLE) -doctitle $(DOCTITLE) -header $(HEADER) -bottom $(BOTTOM) -group $(GROUPCORE) -group $(GROUPEXT) -overview overview-core.html -J-Xmx180m java.lang java.lang.reflect java.util java.io java.net
/* /* /* /* /* /* /* /* /* /* /* /* /*
Path for source files Destination directory Adds "Use" files Splits index A-Z Adds a window title Adds a doc title Adds running header text Adds text at bottom Core heading for overview page Ext heading for overview page For overview text For 180MB memory Packages to document
*/ */ */ */ */ */ */ */ */ */ */ */ */
WINDOWTITLE = 'Java Platform 1.2 Final API Specification' DOCTITLE = 'Java<sup>TM Platform 1.2 Final API' HEADER = 'Java Platform 1.2
Final' BOTTOM = 'Java is a trademark or registered trademark of Sun Microsystems, Inc.
Copyright … font>' GROUPCORE = '"Core Packages" "java.*:com.sun.java.*:org.omg.*" GROUPEXT = '"Extension Packages" "javax.*"' © Rémy Courdier (révision M. GANGAT)
1996 - 2003 - Conventions - Version du cours 3.0
7
Principales Conventions sur les fichiers
Exemple de Javadoc généré avec le jdk 1.2
© Rémy Courdier (révision M. GANGAT)
14/02/2003
1996 - 2003 - Conventions - Version du cours 3.0
8
4
Iremia, R.Courdier
Convention de nommage des méthodes Méthodes spécifiques… méthode de conversion retournant un objet de type X : X toX(...);
accesseurs donnant la valeur d’un attribut y de type X : X getY()
accesseurs modifiant la valeur d’un attribut y de type X : void setY(X val)
© Rémy Courdier (révision M. GANGAT)
1996 - 2003 - Conventions - Version du cours 3.0
9
100 % Pure Java Programme de certification de SUN garantissant la portabilité d'une application Java : « Write Once, Run Anywhere »
Assurance : Phase de tests réalisés par le développeur à l’aide de l ’outil « JavaPureCheck » qui identifie les problèmes de portabilité. Vérification : Phase de tests approfondis réalisés par un organisme indépendant qui peut délivrer la certification.
© Rémy Courdier (révision M. GANGAT)
14/02/2003
1996 - 2003 - Conventions - Version du cours 3.0
10
5
Iremia, R.Courdier
Organigramme de certification de Code 100 % Pure Java
© Rémy Courdier (révision M. GANGAT)
14/02/2003
1996 - 2003 - Conventions - Version du cours 3.0
11
6