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 <NomDeClasse>.java * Définition de … * <pre> * Date Auteur Libelle * ------------------------------------------------* 1/3/98 R.Courdier creation * 1/4/98 R.Courdier modif. de la classe maClasse * </pre> * @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 <code>0</code> to <code>length() -</code>. * * @param index the index of the desired character. * @return the desired character. * @exception StringIndexOutOfRangeException * if the index is not in the range <code>0</code> * to <code>length()-1</code>. * @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><font size="-2">TM</font></sup> Platform 1.2 Final API' HEADER = '<b>Java Platform 1.2</b><br><font size="-1">Final</font>' BOTTOM = '<font size="-1">Java is a trademark or registered trademark of Sun Microsystems, Inc.<br>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