Accueil > Programmer avec Java >
đ ïž Communication pour les dĂ©veloppeurs
Cette page est une rĂ©fĂ©rence, mĂȘme une liste de vĂ©rification, pour lâensemble de vos travaux. Vous pouvez revenir Ă cette page pour vous assurer que vous avez tout ce quâil vous faut en termes de communication Ă lâintĂ©rieur de vos programmes.
Notez quâil y a souvent des Ă©lĂ©ments de communication externes (comme le nom des fichiers, le format de divers documents de planification ou preuves, la façon de rendre vos travaux, etc.) qui ne sont pas inclus ici.
- Identifiants - RĂšgles
- Identifiants - Conventions
- Identifiants - Qualité descriptive
- Explications - Commentaires de ligne, de bloc
- Description du contenu - Javadoc
Survol et attentes
CrĂ©er des algorithmes est difficile. Combiner un paquet dâalgorithmes faits par diffĂ©rentes personnes ou par la mĂȘme personne Ă diffĂ©rents moments est encore plus difficile!
Câest donc important de rendre le code le plus clair possible en choisissant des noms appropriĂ©s et en laissant des commentaires descriptifs et explicatifs dans le code lĂ ou nĂ©cessaire.
Définitions
- Identifiant
-
un identifiant est un mot avec une syntaxe valide en Java qui reprĂ©sente une classe, une mĂ©thode, une variable ou une constante. Les caractĂ©ristiques principales dâun identifiant sont quâil doit ĂȘtre unique dans son contexte et quâil doit ĂȘtre descriptif.
La leçon prĂ©cĂ©dente a dĂ©jĂ introduit les classes et les mĂ©thode, mais nous verrons dans des leçons ultĂ©rieures exactement câest quoi une variable et une constante.
- Convention de nommage
-
pratiques communes qui rendent le code plus lisible et plus facile à comprendre. Si ces rÚgles ne sont pas respectées mais la syntaxe est encore valide, le code fonctionnera mais sera difficile à lire et à maintenir.
- Commentaires de ligne ou de bloc
-
des annotations dans le code qui expliquent le code, notamment la logique des algorithmes, mais qui sont ignorées lors de la conversion du code en langage machine. Les commentaires de ligne débutent par
//et les commentaires de bloc sont emballés entre/*et*/. - Documentation interne
-
commentaires descriptifs qui aident les autres dĂ©veloppeurs Ă comprendre le code. Avec Java, cette documentation se fait avec le javadoc. Les outils de votre EDI reconnaissent gĂ©nĂ©ralement le javadoc et prĂ©sentent des info-bulles avec le contenu du javadoc quand votre curseur se trouve sur le nom dâun Ă©lĂ©ment documentĂ©. Le javadoc prĂ©cĂšde immĂ©diatement la dĂ©claration (mĂ©thode ou variable globale) quâil documente; il est emballĂ© entre
/**et*/(notez le deuxiÚme astérisque au début).
Objectifs dâapprentissage
Ă la fin de cette leçon vous devrez ĂȘtre en mesure de :
- ReconnaĂźtre si un identifiant respecte ou non les rĂšgles strictes de Java.
- Distinguer les classes, les méthodes, les variables et les constantes en appliquant les conventions de nommage de Java.
- Distinguer les trois types de commentaires en Java et décrire la fonction de chacun.
CritĂšres de succĂšs
- Je peux nommer descriptivement les classes, les méthodes et les variables dans le code en applicant les rÚgles et les conventions de Java.
- Je peux ajouter des commentaires explicatifs dans le code, notamment pour la déclaration de variables et pour les structures de contrÎle (sélection, itération).
- Je peux écrire le javadoc pour la classe et ses méthodes.
RĂšgles Java pour les identifiants
Les rĂšgles suivantes sâappliquent quand vous choisissiez des noms pour les classes, les mĂ©thodes, les variables et les constantes dans Java. Le programme plantera si ces rĂšgles ne sont pas respectĂ©es:
- CaractĂšres permis : Lâidentifiant est composĂ© uniquement des caractĂšres
a-z,A-Z,0-9,_et$. Notez quâil nây a pas dâespaces dans cette liste. Les lettres avec accents sont aussi acceptĂ©s, mais Ă cause de la complexitĂ© des diffĂ©rents encodages de caractĂšres, il est prĂ©fĂ©rable de les Ă©viter. - Les majuscules et les minuscules font une diffĂ©rence : Les identifiants sont sensibles Ă la casse. Le mĂȘme mot Ă©crit avec des majuscules ou des minuscules fait rĂ©fĂ©rence Ă deux identifiants distincts.
- Aucun chiffre au début : Les identifiants ne peuvent pas commencer par un chiffre.
- Pas un mot clĂ© : Les identifiants ne peuvent pas ĂȘtre des mots-clĂ©s Java, p. ex.
public,class,void,int,for,if, etc. Ces mots sont dĂ©jĂ dĂ©finis par Java et ne peuvent pas ĂȘtre utilisĂ©s pour autre chose.
Conventions Java pour les identifiants
Différents langages encouragent différents styles de noms pour les identifiants pour les différents élements du programme. Cela aide les développeurs à associer une fonction à un identifiant simplement en observant sa forme.
Voici les conventions de Java.
Casse chameau pour les méthodes et les variables
Tous les noms de variables et de mĂ©thodes respectent la casse chameau (âcamel caseâ en anglais) : toutes les lettres sont minuscules et chaque mot suivant commence par une majuscule. Par exemple : nomDeVariable, nomDeMethode().
Pourquoi le nom chameau? Parce que les majuscules au milieu des mots ressemblent aux bosses sur le dos dâun chameau.
Casse pascal pour les classes et les noms de fichiers
La casse pascal et comme la casse chameau, mais la premiĂšre lettre est aussi une majuscule. Par exemple : NomDeClasse.
Câest vraiment important dâĂ©crire les noms de classe avec une majuscule initiale pour les distinguer des variables et des mĂ©thodes. Câest une convention de nommage trĂšs rĂ©pandue mĂȘme au-delĂ de Java.
Pourquoi le nom pascal? Câest un hommage Ă Pascal, un langage de programmation historiquement important qui utilisait cette convention.
En Java, le nom du fichier doit avoir le mĂȘme nom que la classe quâil contient. Si la classe sâappelle NomDeClasse, le fichier doit sâappeler NomDeClasse.java. Ainsi, tous les noms de fichiers seront Ă©galement en casse pascal. Dans notre cas, oĂč la dĂ©claration de la classe sera implicite, il faut tout de mĂȘme nommer le fichier avec la casse pascal parce que le fichier et la classe sont liĂ©s.
Casse serpent avec majuscules pour les constantes
Pour indiquer quâune variable ne change jamais de valeur, soit quâelle est constante, on utilise une casse spĂ©ciale. Les constantes sont Ă©crites en majuscules avec des soulignements pour sĂ©parer les mots. Par exemple : NOM_DE_CONSTANTE.
Pourquoi le nom serpent? Possiblement parce quâen chaĂźnant les mots avec des soulignements, on imagine les segments du corps dâun serpent. Possiblement parce que les soulignement ressemblent Ă des serpents au sol. Le nom nâest pas officiel, mais il est communĂ©ment utilisĂ© depuis au moins 2004.
Résumé des conventions
| ĂlĂ©ment | Convention | Exemple |
|---|---|---|
| Classe, Fichier | Casse pascal | String, System |
| Méthode | Casse chameau | main(), calculateAge(), testMainWithInvalidData() |
| Variable | Casse chameau | age, totalAmount, userInput |
| Constante | Casse serpent | MAX_VALUE, PI, DEFAULT_NAME |
Identifiants descriptifs
Si les conventions aident les dĂ©veloppeurs Ă reconnaĂźtre la fonction gĂ©nĂ©rale dâun identifiant, les mots utilisĂ©s dans lâidentifiant les aident Ă comprendre plus spĂ©cifiquement ce que lâidentifiant reprĂ©sente dans le programme.
Câest extrĂȘmement important de choisir des noms descriptifs pour tous les identifiants tant pour vous aider Ă comprendre le sens de ce que vous tentez dâaccomplir que pour communiquer ce sens aux autres dĂ©veloppeurs.
Cela sâapplique pour tous les langages de programmation.
Exemple
Que veux dire lâexpression suivante?
a = b * c;
Ă part savoir quâon assigne le produit de deux valeurs Ă une troisiĂšme valeur, câest impossible de le savoir.
Maintenant, que veux dire lâexpression suivante?
areaOfRectangle = length * width;
ou
weeklyPay = hoursWorked * hourlyRate;
Ces deux expressions on exactement la mĂȘme forme que le premier exemple, mais on peut savoir pourquoi on lâa utilisĂ© dans chaque cas. Câest parce que les identifiants ont Ă©tĂ© nommĂ©s de maniĂšre descriptive.
Note : mĂȘme si on travaille en français, il est prĂ©fĂ©rable dâutiliser lâanglais pour les identifiants parce que les mots-clĂ©s du langage sont en anglais. Ainsi, le code est plus facile Ă lire et on Ă©vite les problĂšmes de caractĂšres spĂ©ciaux (p. ex.
Ă©,ç,Ă, etc.).
Commentaires explicatifs - commentaires de ligne ou de bloc
Parfois simplement respecter les conventions de nommage et la pratique de noms descriptifs, il ne reste pas grande chose Ă expliquer dans le code. Mais il y a des moments oĂč un commentaire est nĂ©cessaire pour expliquer un choix de variable ou un algorithme particulier. Câest lĂ que les commentaires explicatifs ont leur place.
Les commentaires sont ignorĂ©s par le compilateur, donc ils nâont pas dâimpact sur le fonctionnement du programme. Ainsi, on devrait les Ă©crire en français dans un langage naturel qui nous convient.
Câest un art de trouver Ă quel point les commentaires explicatifs passent dâutile Ă redondant. Lorsquâil y a trop de commentaires ou les commentaires dupliquent lâinformation dans les identifiants descriptifs, ils nuisent Ă la clartĂ© du code. En contrepartie, sâil nây a pas assez de commentaires, la logique de certaines parties du code peut ĂȘtre difficile Ă suivre. EN CAS DE DOUTE, surtout comme novice, il vaut mieux en mettre un peu trop que pas assez.
Syntaxe des commentaires
Il y a deux façons de laisser des commentaires dans le code Java :
- Les commentaires de ligne suivent deux barres obliques
//et se limitent Ă la ligne sur laquelle ils sont Ă©crits. - Les commentaires de bloc sâĂ©tendent entre les dĂ©limiteurs
/*et*/ce qui leur permet de couvrir plusieurs lignes, au besoin.
Exemple de commentaire de ligne
On suit souvent la dĂ©claration dâune variable avec un commentaire de ligne pour expliquer pourquoi on a choisi une valeur initiale particuliĂšre ou pour indiquer comment il sera utilisĂ© plus loin, si ce nâest pas dĂ©jĂ assez clair par le nom de la variable.
int age; // conservera l'Ăąge fourni par l'utilisateur
Si on arrive Ă une structure de contrĂŽle (comme une sĂ©lection ou une boucle), on prĂ©cĂšde souvent la structure avec un commentaire pour expliquer le but de la structure. Si lâexplication est courte, ce commentaire peut-ĂȘtre un commentaire de ligne.
// Décider si l'utilisateur peut voter
if (age > 18) {
System.out.println("Vous pouvez voter!");
} else {
System.out.println("Vous ne pouvez pas voter.");
}
Finalement, certaines opĂ©rations complexes peuvent ĂȘtre expliquĂ©es avec un commentaire de ligne.
// La distance entre deux points (x1, y1) et (x2, y2)
int dx = x2 - x1;
int dy = y2 - y1;
double distance = Math.sqrt(dx * dx + dy * dy);
Exemple de commentaire de bloc
Le commentaire de bloc est utilisĂ© comme en-tĂȘte dâun fichier, pour prĂ©senter des informations comme la description, comment lâutiliser, qui lâa fait, sâil y a une licence spĂ©cifique attachĂ©e au code, etc.
/*
Nom de la classe : Salut
Description : Un programme simple qui affiche un message de salutation.
Auteur : David Crowley
Date de création : 2023-09-01
*/
On utilise aussi un commentaire de bloc si la logique dâun algorithme ne peut pas sâexpliquer sur une seule ligne.
/*
On gagne si on atteint 100 points ou plus.
On perd si on atteint 20 tentatives.
On quitte en milieu du jeu si l'utilisateur a tapé "q".
*/
if (points >= 100) {
System.out.println("Vous avez gagné!");
} else if (attempts >= 20) {
System.out.println("Vous avez perdu.");
} else if (userInput.equals("q")) {
System.out.println("Vous avez quitté le jeu.");
}
Notez que vous pouvez aussi utiliser plusieurs commentaires de ligne une aprĂšs lâautre au lieu dâutiliser un commentaire de bloc. Câest ce qui arrive souvent, parce quâon ne rĂ©alise pas la longueur du commentaire avant de lâĂ©crire.
Documentation interne - Javadoc
Ceci est un sujet qui est plus avancĂ©. Nous lâutiliserons pas dĂšs le dĂ©but, contrairement aux autres sujets de cette leçon. La section demeure ici pour rĂ©fĂ©rence future.
Les commentaires explicatifs sont utiles pour prĂ©senter notre logique lorsquâun dĂ©veloppeur lit les dĂ©tails internes de notre code. Mais câest aussi pratique de connaĂźtre le contenu dâune classe ou la structure dâune mĂ©thode mĂȘme sans lire le code. Câest lĂ que la documentation interne entre en jeu.
La documentation interne, appelĂ© javadoc en Java, est un format de commentaire spĂ©cial qui est reconnu par les outils Java pour gĂ©nĂ©rer de la documentation officielle. Les outils Java vous affichent le contenu de ces commentaires dans lâauto-complĂ©tion (lorsque vous tapez votre code) et dans les info-bulles (lorsque votre souris passe sur un identifiant).
Pour créer un commentaire javadoc :
- on utilise un commentaire de bloc avec un
*supplĂ©mentaire au dĂ©but. Le bloc commence alors par/**(deux astĂ©risques) et se termine par*/. - Le javadoc doit ĂȘtre placĂ© immĂ©diatement devant la dĂ©claration de la classe ou de la mĂ©thode quâil documente. Sinon, les outils Java ne sauront pas Ă quoi il se rĂ©fĂšre : il sera considĂ©rĂ© comme un simple commentaire de bloc.
- Câest mieux dâĂ©crire le javadoc aprĂšs avoir Ă©crit le code. Les outils de votre EDI peuvent alors ajouter plusieurs dĂ©tails automatiquement avec le bon format, vous laissant juste la tĂąche dâajouter les descriptions.
- Votre EDI ajoutera probablement des
*supplĂ©mentaires pour chaque ligne du javadoc. Câest une convention pour rendre le commentaire plus lisible, mais ces astĂ©risques internes ne sont pas nĂ©cessaires pour que le javadoc fonctionne.
Format gĂ©nĂ©ral pour le javadoc dâune mĂ©thode
Les paramĂštres (les
@param) et la valeur de retour (le@return) sont des sujets plus avancĂ©s qui seront traitĂ©s plus tard dans le cours. Pour lâinstant, si on demande le javadoc dâune mĂ©thode, on sâattend Ă voir juste sa description.
/**
* Description de la méthode.
*
* @param nomParamĂštre Description du paramĂštre
* @param nomAutreParamĂštre Description de l'autre paramĂštre
* @return Description de la valeur de retour
*/
Exercices
đ Tester la comprĂ©hension
Quiz de vérification sur les identifiants et les commentaires
đ ïž Pratique
Travaillez dans le dĂ©pĂŽt âpratiqueâ partagĂ© par votre enseignant. Si vous lâavez dĂ©jĂ clĂŽnĂ©, simplement lâouvrir dans VS Code.
Votre répertoire devrait avoir la structure et le contenu suivants avant de commencer les exercices :
pratique-[votre nom]
|---captures
| `---4-1-Structure.png
|---README.md
`---Salut.java
Dans le programme Salut.java que vous avez fait précédemment :
- Ajouter un commentaire de bloc comme en-tĂȘte du fichier pour expliquer ce que le programme fait.
- Ajoutez le javadoc sur la méthode
main. Notez dans la description quelles parties du commentaire ont Ă©tĂ© ajoutĂ©es automatiquement par votre EDI. - Ajoutez un commentaire de ligne pour expliquer ce que lâinstruction
System.out.println("Salut gang!");fait. - Prendre une capture dâĂ©cran du code quand votre curseur est sur le nom de la mĂ©thode
main(et lâinfo-bulle est affichĂ©) et lâenregistrer dans âcapturesâ. Nommez le fichier4-3-Communication.png.