Conventions de codage Java

publicité
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
Téléchargement