Création de sites web html-css,JavaScript, PHP,python-django
Disponible pour la création de vos sites web et pour une formation pour ceux qui veulent savoir faire du site web
📝 LEÇON 10 : Éviter les encodages et les jeux de mots
(Chapitre 2 – "Clean Code" de Robert C. Martin)
Bonjour à tous ! 👋
On termine le Chapitre 2 avec deux dernières règles importantes : ÉVITER LES ENCODAGES et ÉVITER LES JEUX DE MOTS.
Aujourd'hui : COMMENT NE PAS COMPLIQUER SES NOMS. 🎯
🎯 C'est quoi un encodage ?
Robert C. Martin écrit :
"Nous avons assez d'encodages à gérer sans en ajouter davantage. Coder le type ou la portée dans les noms ajoute simplement un fardeau de déchiffrage supplémentaire."
En clair : NE PAS METTRE D'INFORMATIONS INUTILES DANS LES NOMS.
💻 Exemple 1 – La notation hongroise (Hungarian Notation)
❌ MAUVAIS NOM
String m_sName; // "m_" signifie "membre"
int iCount; // "i" signifie "int"
float fPrice; // "f" signifie "float"
Pourquoi c'est mal ?
Les IDE modernes te montrent déjà le type
C'est du BRUIT visuel
Si tu changes le type, tu dois renommer
Les débutants sont perdus
✅ BON NOM
String name;
int count;
float price;
C'est CLAIR. Pas besoin de code.
💻 Exemple 2 – Les préfixes de membres
❌ MAUVAIS NOM
public class Part {
private String m_description;
void setName(String name) {
m_description = name;
}
}
Le "m_" ne sert à rien.
Les IDE modernes colorent les variables différemment.
✅ BON NOM
public class Part {
private String description;
void setName(String name) {
this.description = name;
}
}
"this.description" montre clairement que c'est un membre.
💻 Exemple 3 – Les interfaces et implémentations
❌ MAUVAIS NOM
interface IShapeFactory {
// ...
}
class ShapeFactory implements IShapeFactory {
// ...
}
Le "I" devant l'interface est INUTILE.
✅ BON NOM
interface ShapeFactory {
// ...
}
class ShapeFactoryImpl implements ShapeFactory {
// ...
}
Ou encore mieux :
interface ShapeFactory {
// ...
}
class DefaultShapeFactory implements ShapeFactory {
// ...
}
🎯 C'est quoi un jeu de mots ?
Robert C. Martin écrit :
"Évitez d'utiliser le même mot pour deux usages différents. Utiliser le même terme pour deux idées différentes est essentiellement un jeu de mots."
En clair : NE PAS UTILISER LE MÊME NOM POUR DES CHOSES DIFFÉRENTES.
💻 Exemple 4 – Le mot "add"
❌ MAUVAIS NOM
// Classe 1
public void add(int a, int b) {
return a + b; // additionne deux nombres
}
// Classe 2
public void add(Product product) {
products.add(product); // ajoute à une liste
}
Pourquoi c'est mal ?
Le mot "add" est utilisé pour DEUX CHOSES DIFFÉRENTES :
Additionner des nombres
Ajouter à une collection
✅ BON NOM
// Classe 1
public int sum(int a, int b) {
return a + b; // additionne deux nombres
}
// Classe 2
public void append(Product product) {
products.add(product); // ajoute à une liste
}
Maintenant, chaque mot a un sens UNIQUE.
💻 Exemple 5 – Le mot "get"
❌ MAUVAIS NOM
// Classe 1
public String getEmployee() {
return employeeName; // retourne un nom
}
// Classe 2
public Employee getEmployee() {
// va chercher l'employé dans la base de données
return employee; // retourne un objet
}
Le mot "get" est utilisé pour DEUX CHOSES DIFFÉRENTES.
C'est un PUN (jeu de mots).
✅ BON NOM
// Classe 1
public String getEmployeeName() {
return employeeName;
}
// Classe 2
public Employee retrieveEmployee() {
// va chercher l'employé dans la base de données
return employee;
}
Maintenant, chaque mot a un sens UNIQUE.
🎯 Les règles d'or
✅ N'ENCODE PAS le type dans le nom
✅ N'ENCODE PAS la portée dans le nom
✅ Utilise "this" pour les membres (au lieu de "m_")
✅ NE PUN PAS (un même mot pour plusieurs usages)
✅ Un mot pour un CONCEPT
✅ Des mots différents pour des concepts différents
📚 Récapitulatif du Chapitre 2
Leçon Sujet
Leçon 6 Des noms qui révèlent l'intention
Leçon 7 Éviter la désinformation
Leçon 8 Faire des distinctions significatives
Leçon 9 Des noms prononçables et recherchables
Leçon 10 Éviter les encodages et les jeux de mots
🎯 Le défi
Regarde ton code. Trouve UN nom :
Qui a un préfixe inutile (m_, i_, f_, I)
Ou qui est un "jeu de mots" (un même mot pour plusieurs usages)
Remplace-le par un nom PLUS CLAIR.
Avant / Après ? Partage en commentaire ! 👇
💬 Discussion
As-tu déjà vu des codes avec des préfixes bizarres comme "m_" ou "i_" ?
Raconte-nous en commentaire ! 👇
📖 Prochaine leçon : Chapitre 3 – Les fonctions !
Un grand merci à mes nouveaux followers ! ZurriyeSema Acikgoz, Ocla Oma, Idrissa Harouna Souley, Joel L'indoptable Jlp, Gnénanon Sèdami Akogbèdé, Ngaradoum Hoffmann Beldoum, Steve Hélion Massaya, Sidiki Fanta Traore, Ndayizeye Yves, Frere Joe, Elie Karhana, Ndella Diallo, Papys Sapanga, Ben Adalil, Zairois Palata Zedkys, Etelé Lebe, Junior Kabongo, Pathie Alipamasa, André Bisimwa, Eze Eberechi, Ingénieur Grâce Lusanlemvo, Abdoul Sy, Marvel Aubry, Seydou Compaoré, Tahina Raj, Möñsïęür L'Öpülęñt, Emmanuel Nihinzo Bazoum, Mahamadou Bagayogo, Yumbu Musala Yug's, Robert Kasonga, Deçlerck Mubungu, William Champion, L'enfant Noir, Ardy Rich Mabiala Tchibinda, Eniola Alphonse Av, Alkane Smart, Samiou Leader Issiakou, Jules Ladivala, Rachel La Rose, David Kakozi, Dieudo Muamba, Ndjek Miguel, Fõlä Kë, Elie Kimvuka, Drissa Yalcouyé, Syllas Huruma, Ivan Manifik, Mapochi Kasongo, Eddie Koumassa, Plam's Muke
Un grand merci à mes nouveaux followers ! Gueve Kashiama, Papa Spirituelle, MarketpIacers AI, Joseph Mayombo, Nainarinjaka Randrianarisoa, José Elias Cibwabwa Ngweji, Moise Fomo, Chrispin Ngombe Ngboko Abuza, Paulin Bekale Mba, Edouard Casimir Woodley, Alexis Yaméogo, Crescence Nadège Abomo, Augustin El, Louis Chance Kabutuka, Vistra Cinquante-six, Franck Camille, Andriambololonjafy Fifaliantsoa, Emrys Kanyiki LeVéritable, Emanuel Robert Ebiu, Abraham Zoko, Kaossiri Lirwe, Fati Marco, Elhadj Lancinet Konaté, Vj Zouma Zoumasky, Neya Le Créateur, Leöpard Øg SB, Bivin's Molaba Juif Noir, Enock Phanzu, Didier le Sage, Abdel Faroque, Emmanuel Gahiga, Thomas Gorba, Eurnice Traore, Falmata Mahamat, Soumah Le Visionnaire, Bob Kay, Fan Marcellin, Amani Florent Konansui, Moïse Ohelo Ohelo, Sainplus Jay-z, Negro Dollar, Henock KL, Zanaky Zebedio, Denis Tchansi, Abdou Jidou, Daniella Deborah, Skira Dnd, Jacques Ekila, Mohammed El Bach, Maître Azéfa
Un grand merci à mes nouveaux followers ! Gueve Kashiama, Papa Spirituelle, MarketpIacers AI, Joseph Mayombo, Nainarinjaka Randrianarisoa, José Elias Cibwabwa Ngweji, Chrispin Ngombe Ngboko Abuza, Paulin Bekale Mba, Edouard Casimir Woodley, Alexis Yaméogo, Crescence Nadège Abomo, Augustin El, Louis Chance Kabutuka, Vistra Cinquante-six, Franck Camille, Andriambololonjafy Fifaliantsoa, Emrys Kanyiki LeVéritable, Emanuel Robert Ebiu, Abraham Zoko, Kaossiri Lirwe, Fati Marco, Elhadj Lancinet Konaté, Vj Zouma Zoumasky, Neya Le Créateur, Leöpard Øg SB, Bivin's Molaba Juif Noir, Enock Phanzu, Didier le Sage, Abdel Faroque, Emmanuel Gahiga, Thomas Gorba, Eurnice Traore, Falmata Mahamat, Soumah Le Visionnaire, Bob Kay, Fan Marcellin, Amani Florent Konansui, Moïse Ohelo Ohelo, Sainplus Jay-z, Negro Dollar, Henock KL, Zanaky Zebedio, Denis Tchansi, Abdou Jidou, Daniella Deborah, Skira Dnd, Jacques Ekila, Mohammed El Bach, Maître Azéfa, Sanni Bah Mouhamed
📝 LEÇON 9 : Des noms prononçables et recherchables
(Chapitre 2 – "Clean Code" de Robert C. Martin)
Bonjour à tous ! 👋
Dans les leçons précédentes, on a vu comment choisir des noms qui révèlent l'intention et éviter la désinformation.
Aujourd'hui, on va voir comment utiliser des noms PRONONÇABLES et RECHERCHABLES. 🎯
🎯 Pourquoi des noms prononçables ?
Robert C. Martin écrit :
"Si vous ne pouvez pas le prononcer, vous ne pouvez pas en discuter sans avoir l'air idiot."
Les humains sont BONS avec les mots. Notre cerveau est fait pour le langage PARLÉ.
Si tu ne peux pas prononcer un nom, tu ne peux pas en parler avec tes collègues.
💻 Exemple 1 – Le nom imprononçable
❌ MAUVAIS NOM
int genymdhms;
Que signifie ce nom ?
C'est un acronyme : "génération date, année, mois, jour, heure, minute, seconde"
Mais comment on le prononce ?
- "gen yah muddahims" ?
- "gen why emm dee aich emm ess" ?
Les développeurs passaient leur temps à dire des SONS BIZARRES.
✅ BON NOM
int generationTimestamp;
int modificationTimestamp;
Maintenant, on peut en parler NORMALEMENT :
- "génération timestamp"
- "modification timestamp"
"Hey, regarde ! La date de génération est demain ! Comment est-ce possible ?"
💻 Exemple 2 – Le nom difficile à prononcer
❌ MAUVAIS NOM
class DtaRcrd102 {
// ...
}
Comment on prononce "DtaRcrd102" ?
- "Data Record 102" ?
- "Dee tee a arr cee arr dee 102" ?
C'est IMPOSSIBLE.
✅ BON NOM
class CustomerRecord {
// ...
}
class ProductRecord {
// ...
}
Maintenant, c'est FACILE à dire.
🎯 Pourquoi des noms recherchables ?
Robert C. Martin écrit :
"Les noms à une seule lettre et les constantes numériques ont un problème particulier : ils ne sont pas faciles à localiser dans un texte."
En clair : SI TU VEUX RETROUVER UN NOM, IL DOIT ÊTRE UNIQUE.
💻 Exemple 3 – Les noms non recherchables
❌ MAUVAIS NOM
for (int j=0; j
📝 LEÇON 8 : Faire des distinctions significatives
(Chapitre 2 – « Clean Code » de Robert C. Martin)
Bonjour à tous ! 👋
Dans les précédentes leçons, sur a vu comment choisir des noms qui révèlent l'intention et la éviter la désinformation.
Aujourd'hui, sur va voir commentaire FAIRE DES DISTINCTIONS SIGNIFICATIVES.
🎯 C'est assez une distinction significative ?
Robert C. Martin écrit :
"Les programmeurs se créent des problèmes'ils écrivent unique du code pour satisfaire le compilateur. Si les noms doivent être, les désirs aussi singérants choisis de quelque de différent."
En clair : NE PAS DONNER DES NOMS DIFFÉRENTS POUR DES CHOSES IDENTIQUES.
💻 Exemple 1 – Les séries de nombres
❌ MAUVAIS NOM
int a1;
int a2;
int a3;
int a4;
int a5;
Que représentent ces variables ? On ne sait pas.
C'est une SÉRIE DE NOMBRES. Le nom ne donne AUCUNE information.
✅ BON NOM
int studentId;
int teacherId;
int courseId;
int grade;
int score;
Maintenant, on sait EXACTEMENT ce que chaque variable représente.
💻 Exemple 2 – Les mots "Info" et "Data"
❌ MAUVAIS NOM
class Product {
// ...
}
class ProductInfo {
// ...
}
class ProductData {
// ...
}
Quelle est la différence entre Product, ProductInfo et ProductData ?
AUCUNE ! Ces noms sont VIDES de sens.
Ils ne disent rien de différent.
✅ BON NOM
class Product {
// ...
}
class ProductWithDiscount {
// ...
}
class ProductInStock {
// ...
}
Maintenant, chaque classe a un sens DIFFÉRENT.
💻 Exemple 3 – Les mots vides
❌ MAUVAIS NOM
String nameString;
String name;
Quelle est la différence ? "nameString" et "name" ?
AUCUNE. Le mot "String" est un BRUIT. Il n'apporte rien.
✅ BON NOM
String firstName;
String lastName;
String fullName;
Maintenant, chaque nom a un sens DIFFÉRENT.
❌ AUTRE EXEMPLE
double moneyAmount;
double money;
MoneyAmount et Money ? C'est la même chose !
Le mot "Amount" est du BRUIT.
✅ BON NOM
double salary;
double bonus;
double totalSalary;
Maintenant, chaque nom a un sens DIFFÉRENT.
💻 Exemple 4 – Les fonctions confuses
❌ MAUVAIS NOM
getActiveAccount();
getActiveAccounts();
getActiveAccountInfo();
Trois fonctions. Quelles sont les différences ?
La première retourne UN compte actif ?
La deuxième retourne PLUSIEURS comptes actifs ?
La troisième retourne des informations sur le compte actif ?
On ne sait PAS. Il faut DEVINER.
✅ BON NOM
getActiveAccount(); // retourne un seul compte actif
getListOfActiveAccounts(); // retourne plusieurs comptes actifs
getActiveAccountDetails(); // retourne les détails d'un compte
Maintenant, on sait EXACTEMENT ce que chaque fonction fait.
💻 Exemple 5 – Les variables dans une fonction
❌ MAUVAIS NOM
public void copyChars(char a1[], char a2[]) {
for (int i = 0; i < a1.length; i++) {
a2[i] = a1[i];
}
}
Que signifie "a1" et "a2" ?
a1 = ? On ne sait pas.
a2 = ? On ne sait pas.
✅ BON NOM
public void copyChars(char source[], char destination[]) {
for (int i = 0; i < source.length; i++) {
destination[i] = source[i];
}
}
Maintenant, on sait EXACTEMENT ce que fait la fonction.
🌍 MAINTENANT EN PYTHON
❌ MAUVAIS NOM
def get_data():
return user_info
def get_data_info():
return user_info_details
def get_user_data():
return user_info_complete
"data", "data_info", "user_data" → On ne voit pas la différence.
✅ BON NOM
def get_user_name():
return user_name
def get_user_age():
return user_age
def get_user_address():
return user_address
Chaque fonction a un nom CLAIR qui dit ce qu'elle fait.
🌍 MAINTENANT EN C
❌ MAUVAIS NOM
int cnt1;
int cnt2;
int cnt3;
"cnt1", "cnt2", "cnt3" → On ne sait pas ce qu'ils comptent.
✅ BON NOM
int studentCount;
int teacherCount;
int courseCount;
Maintenant, on sait EXACTEMENT ce que chaque variable compte.
🎯 Les pièges à éviter
Problème Solution
Série de nombres (a1, a2, a3) Donne un nom SIGNIFICATIF
Mots vides (Info, Data) Supprime-les ou remplace-les
Noms presque identiques Rend-les DIFFÉRENTS
Fonctions confuses Nomme-les CLAIREMENT
Variables sans contexte Ajoute du CONTEXTE
🎯 Les règles d'or
✅ Des noms différents pour des choses DIFFÉRENTES
✅ Des noms identiques pour des choses IDENTIQUES
✅ Évite les mots vides (Info, Data, String, Object)
✅ Les noms doivent RACONTER UNE HISTOIRE
✅ Une fonction doit avoir un nom qui dit ce qu'elle fait
🎯 Le défi
Regarder le code ton. Trouve UNE variable ou UNE fonction qui a un nom vague ou confus.
Remplace-la par un nom PLUS CLAIR et PLUS PRÉCIS.
Avant / Après ? Partage en commentaire ! 👇
💬 Discussion
As-tu déjà eu du mal à comprendre la différence entre deux fonctions ou variables ?
Raconte-nous en commentaire ! 👇
📖 Prochaine leçon : Des noms prononçables et recherchables
Un grand merci à mes nouveaux followers ! Goh Jean Stephane, Salam Salama, Talla Sarr, Toussaint Yebeni, Aka Jean Charles Tano, Tanguy Francky Fafa, Sayın Yacouba Toure, Maître Newton, Jeef Kalonda, Toussaint Ndombele, Gael Kabambi, Pamen Joel, Kone Ademsy, Edes Akaffou, Philipeyao Koffi, Įbrąhīm Møhāmęd Ēl-Khõüzāmį, Jean Paul Mvibudulu Sikanduta, De Criss Lawulenu, Belami Boliti, Ello James, Assani Maningi, Trésor Beñï Mahula, Innoçent Kwete, Leviam'nay Jean Dauph'un, Landry Ngoma, Jérémie Madidi, Arséne Tshilenda, Deroge Ngoma, Achirou Ousmane, Jalloh Mo Jalloh, Djedi Djedi, Seraphin Esombe Mayoma, Mans-boy Mansiantima, Nang-djeloum Mahamat, Vincent Dassaut, Herman Vispoya Mobuni, Junior Mitewu, Jean Efomi, Josue Kalondji, Bienvenu Mayembi, Caleb Mbele Mayembo, Splendor Yala, Djeph Meshe, Pdt Güada Lajara Gloire, Ernest Nzosaba, Agassoumane Maiga, Abdoul Aziz, Abdoulaye Ka, Ketshïa Mbatu, Djamilou Jamci
📝 LEÇON 7 : Éviter la désinformation dans les noms
(Chapitre 2 – "Clean Code" de Robert C. Martin)
Bonjour à tous ! 👋
La semaine dernière, on a appris à choisir des noms qui révèlent l'intention.
Aujourd'hui, on va voir comment ÉVITER LA DÉSINFORMATION dans nos noms.
🎯 C'est quoi la désinformation dans le code ?
Robert C. Martin écrit :
"Les programmeurs doivent éviter de laisser de faux indices qui obscurcissent le sens du code. Nous devons éviter les mots dont les significations établies diffèrent de notre sens voulu."
En clair : UN MAUVAIS NOM PEUT TROMPER CEUX QUI LISENT LE CODE.
💻 Exemple 1 – Les noms qui trompent
❌ MAUVAIS NOM
int hp;
On pourrait penser que "hp" signifie "horsepower" (chevaux-vapeur) ou "Hewlett-Packard" (la marque d'ordinateurs).
Mais en réalité, le développeur voulait dire "hypotenuse" (hypoténuse).
Le nom "hp" est TROMPEUR.
✅ BON NOM
int hypotenuse;
Maintenant, on sait exactement ce que c'est.
💻 Exemple 2 – Le mot "List"
❌ MAUVAIS NOM
List accountList;
Le mot "List" a une signification PRÉCISE en programmation. C'est une structure de données avec des propriétés spécifiques.
Si ta variable n'est pas une vraie List, ne l'appelle pas "List".
✅ BON NOM
List accounts;
Set accountSet;
Collection accountCollection;
🎯 Utilise les bons mots pour les bonnes structures.
💻 Exemple 3 – Des noms qui se ressemblent trop
❌ MAUVAIS NOM
XYZControllerForEfficientHandlingOfStrings
XYZControllerForEfficientStorageOfStrings
Ces deux noms sont TROP SIMILAIRES. Il est facile de les confondre.
✅ BON NOM
StringHandler
StringStorage
Noms courts, clairs, et DIFFÉRENTS.
💻 Exemple 4 – Les lettres qui trompent
❌ MAUVAIS NOM
int a = 1;
if (0 == 1 ) a = 01;
else 1 = 01;
Ce code est un cauchemar à lire car :
"l" (lettre L minuscule) ressemble à "1" (chiffre un)
"O" (lettre O majuscule) ressemble à "0" (chiffre zéro)
✅ BON NOM
int count = 1;
if (0 == count) count = 10;
else count = 10;
Maintenant, c'est CLAIR.
🌍 MAINTENANT EN PYTHON
❌ MAUVAIS NOM
def get_data():
return user_info
Que signifie "data" ? Des données ? Lesquelles ? On ne sait pas.
✅ BON NOM
def get_user_information():
return user_info
Maintenant, on sait exactement ce que la fonction retourne.
🌍 MAINTENANT EN C
❌ MAUVAIS NOM
int cnt; // nombre d'éléments
"cnt" est une abréviation. Mais tout le monde ne la connaît pas.
✅ BON NOM
int elementCount;
C'est clair. Pas besoin de commentaire.
💡 L'HISTOIRE DE ROBERT C. MARTIN
L'auteur raconte une histoire qu'il a vécue :
"Un auteur de code suggérait d'utiliser une police de caractères différente pour que les différences entre les noms soient plus évidentes."
La solution ? RENOMMER. Pas changer la police.
Un bon nom n'a pas besoin de police spéciale.
🎯 Les pièges à éviter
Problème Solution
Noms qui trompent Choisis des noms précis
Abréviations ambiguës Écris les mots en entier
Noms trop similaires Rend-les distincts
Lettres confondantes (l, O) Évite-les
Mots avec sens spécifique (List) Utilise le bon terme
🎯 Les règles d'or
✅ Un nom ne doit pas TROMPER le lecteur
✅ Évite les abréviations ambiguës
✅ Des noms différents pour des choses différentes
✅ Ne pas utiliser "l" ou "O" comme noms de variables
✅ Si un nom est confus, RENOMME-LE
🎯 Le défi
Regarde ton code. Trouve UN nom qui pourrait TROMPER quelqu'un.
Remplace-le par un nom plus CLAIR.
Avant / Après ? Partage en commentaire ! 👇
💬 Discussion
As-tu déjà été trompé par un nom de variable ?
Raconte-nous en commentaire ! 👇
📖 Prochaine leçon : Faire des distinctions significatives
📝 LEÇON 6 : Des noms qui révèlent l'intention
(Chapitre 2 – "Clean Code" de Robert C. Martin)
Bonjour à tous ! 👋
La semaine dernière, on a terminé le Chapitre 1. On a compris POURQUOI le code propre est essentiel.
Cette semaine, on attaque le CHAPITRE 2 : COMMENT DONNER DES NOMS QUI ONT DU SENS. 🎯
Aujourd'hui : DES NOMS QUI RÉVÈLENT L'INTENTION.
🎯 Pourquoi les noms sont si importants
Robert C. Martin écrit :
"Le nom d'une variable, d'une fonction ou d'une classe devrait répondre à toutes les grandes questions. Il devrait dire pourquoi elle existe, ce qu'elle fait et comment elle est utilisée. Si un nom nécessite un commentaire, alors le nom ne révèle pas son intention."
En clair : UN BON NOM EST AUTO-EXPLICATIF. Pas besoin de commentaire pour comprendre.
💻 Exemple en Java
❌ MAUVAIS NOM
int d; // temps écoulé en jours
Que signifie "d" ? Rien. Il faut un commentaire pour comprendre.
✅ BON NOM
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;
Ces noms sont CLAIRS. Pas besoin de commentaire.
💻 AUTRE EXEMPLE EN JAVA
❌ MAUVAIS CODE
public List getThem() {
List list1 = new ArrayList();
for (int[] x : theList)
if (x[0] == 4)
list1.add(x);
return list1;
}
Que fait ce code ? C'est IMPOSSIBLE à savoir.
"getThem" → "Les obtenir" ? Quoi ? On ne sait pas.
"theList" → La liste de quoi ? On ne sait pas.
"x[0]" → Le premier élément de quoi ? On ne sait pas.
"4" → Pourquoi 4 ? On ne sait pas.
✅ BON CODE
public List getFlaggedCells() {
List flaggedCells = new ArrayList();
for (int[] cell : gameBoard)
if (cell[STATUS_VALUE] == FLAGGED)
flaggedCells.add(cell);
return flaggedCells;
}
Même code, mais avec des noms CLAIRS :
"getFlaggedCells" → on sait qu'on récupère les cellules marquées
"gameBoard" → on sait qu'on est dans un jeu
"STATUS_VALUE" → le premier élément est un statut
"FLAGGED" → 4 signifie "marqué"
🔧 Version encore meilleure
public List getFlaggedCells() {
List flaggedCells = new ArrayList();
for (Cell cell : gameBoard)
if (cell.isFlagged())
flaggedCells.add(cell);
return flaggedCells;
}
Maintenant, le code est TELLEMENT CLAIR qu'on le comprend en UN COUP D'ŒIL.
🌍 MAINTENANT EN PYTHON
❌ MAUVAIS CODE
def calc(a, b):
return a * b
Que font "a" et "b" ? On ne sait pas.
C'est quoi "calc" ? Calcul de quoi ? On ne sait pas.
✅ BON CODE
def calculate_rectangle_area(width, height):
return width * height
Maintenant, on sait EXACTEMENT ce que fait la fonction.
🌍 MAINTENANT EN C
❌ MAUVAIS NOM
int d; // distance en km
✅ BON NOM
int distanceInKilometers;
C'est clair, net, précis. Pas besoin de commentaire.
💡 L'HISTOIRE DE ROBERT C. MARTIN
L'auteur raconte une histoire pour montrer la puissance des noms :
"Une entreprise utilisait genymdhms (génération date, année, mois, jour, heure, minute, seconde). Les développeurs disaient 'gen yah muddahims' pour parler de cette variable.
Comparez avec :
class Customer {
private Date generationTimestamp;
private Date modificationTimestamp;
}
Maintenant, une conversation intelligente est possible : 'Hé, regarde cet enregistrement ! La date de génération est demain ! Comment est-ce possible ?'"
La différence est ÉNORME.
🎯 Les règles d'or pour nommer
✅ Le nom doit RÉVÉLER l'intention
✅ Pas besoin de commentaire si le nom est bon
✅ Un bon nom répond : POURQUOI ? QUOI ? COMMENT ?
✅ Utilise des noms qui RACONTENT UNE HISTOIRE
✅ Choisis des noms qui évoquent le contexte
🎯 Le défi
Regarde ton code. Trouve UNE variable ou UNE fonction qui a un nom peu clair.
Remplace-la par un nom qui RÉVÈLE son intention.
Avant / Après ? Partage en commentaire ! 👇
💬 Discussion
As-tu déjà eu du mal à comprendre ton propre code à cause de mauvais noms ?
Raconte-nous en commentaire ! 👇
📖 Prochaine leçon : Éviter la désinformation dans les noms
Un grand merci à mes nouveaux followers ! Papa Amath Diouf, Emmanuel Oupoh Oupoh, LaSs Qamara, Ir Timôthée Dû Sëignëûr, Abdias Winamou, Tresor Luzolo, Lehbibe Ould Cheine, Abibo's Adjago, Noel Mafutantantu, Ali Ahmat Djibrine, Bassirou Ndiaye Ndiaye, Cedrick Yàyà Kp, Robenson Morin, François Jean Bin Tambwe, Souhongou M'po Casimir, Abdoul Karim Barry, Samuel Bilengalenga Sammy, Stéphanie Blam's Tsh*tshi, Esther Yake, Mamadou Laminou Sow, Thales Le Rabby, Laurent Kashama, Fore Condé, Ayang Bruno, Mbozin Pouvoir, Safanmatan Soura, Celestin Koffi, Falikou Dore, Voldi Mukeba Ndiye, Ibrahim Orou Monri, Tango Tiger Force, Exaucé Vuvu, HÉRITIER BAØNGA, Miandrisoa Dominique, Konan Yannick Kouakou, Lajoie Allégresse, Gongabu Bukasa, Alain Makufi, Michel Assih, Aguima Gabriel Yonli, Sidonie Para'daise, Joël La Fleur Joelo, Victoir Kashingi, Michel Bongo, Jean Paul Lembwa, Francy Kobanza, Lemirho Emmanuel, Bah Amadou Yero, K.P. Landry, Bi Youan Judicaël Zamble
Cliquez ici pour réclamer votre Listage Commercial.