Keyboard shortcuts

Touchez ← ou → pour naviguer les chapitres

Touchez S ou / pour chercher dans le livre

Touchez ? pour afficher ce message

Touchez Esc pour masquer ce message

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.

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Ă©mentConventionExemple
Classe, FichierCasse pascalString, System
MéthodeCasse chameaumain(), calculateAge(), testMainWithInvalidData()
VariableCasse chameauage, totalAmount, userInput
ConstanteCasse serpentMAX_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 :

  1. Ajouter un commentaire de bloc comme en-tĂȘte du fichier pour expliquer ce que le programme fait.
  2. Ajoutez le javadoc sur la méthode main. Notez dans la description quelles parties du commentaire ont été ajoutées automatiquement par votre EDI.
  3. Ajoutez un commentaire de ligne pour expliquer ce que l’instruction System.out.println("Salut gang!"); fait.
  4. 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 fichier 4-3-Communication.png.

© 2022-2025 David Crowley