Clean Code en C++ : principes pour écrire un code lisible

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Clean Code en C++ : comment écrire du code que vous n'avez pas honte de montrer à vos collègues



Chaque développeur C++ se retrouve tôt ou tard dans une situation où son propre code, un mois plus tard, se transforme en "forêt sombre". Des variables comme int a, des fonctions de 300 lignes et des nombres magiques dans tout le projet — ça vous dit quelque chose ? Dans cet article, nous allons passer en revue les principes du Clean Code appliqués au C++, pour que votre code soit non seulement fonctionnel, mais aussi compréhensible pour les autres (et pour vous-même à l'avenir).



1. Nommer les variables, fonctions et classes



Un bon nom, c'est la moitié du travail. En C++, il est d'usage d'utiliser le camelCase pour les variables et fonctions, le PascalCase pour les classes et le UPPER_CASE pour les constantes (bien que dans le C++ moderne, on préfère constexpr).



Mauvais exemple :

int d; // elapsed time in daysfloat x; // salary multiplierbool fl; // is file loaded?


Bon exemple :

int elapsedDays;float salaryMultiplier;bool isFileLoaded;


La règle est simple : le nom doit répondre à la question "qu'est-ce que c'est ?" ou "qu'est-ce que ça fait ?". Évitez les abréviations (sauf celles qui sont courantes, comme idx pour index). Pour les variables booléennes, utilisez les préfixes is, has, can.



2. Les fonctions doivent être petites et faire une seule chose



Le principe classique du Clean Code — une fonction doit effectuer exactement une tâche. Si vous ne pouvez pas trouver un nom court et compréhensible pour une fonction, c'est probablement qu'elle en fait trop.



Mauvais exemple :

void processData(std::vector<int>& data) {    // сортировка    std::sort(data.begin(), data.end());    // удаление дубликатов    data.erase(std::unique(data.begin(), data.end()), data.end());    // расчет среднего    double sum = 0;    for (int val : data) sum += val;    double avg = sum / data.size();    // вывод    std::cout << "Average: " << avg << std::endl;}


Bon exemple :

std::vector<int> sortAndUnique(std::vector<int> data) {    std::sort(data.begin(), data.end());    data.erase(std::unique(data.begin(), data.end()), data.end());    return data;}

double calculateAverage(const std::vector<int>& data) { if (data.empty()) return 0.0; double sum = std::accumulate(data.begin(), data.end(), 0.0); return sum / data.size();}

void printAverage(const std::vector<int>& data) { auto processed = sortAndUnique(data); double avg = calculateAverage(processed); std::cout << "Average: " << avg << std::endl;}


Chaque fonction résout une seule tâche, est facile à tester et à réutiliser. La longueur d'une fonction ne devrait pas dépasser 20 à 30 lignes — c'est un bon repère.



3. Évitez les nombres magiques et la duplication



Les nombres magiques sont des nombres dont la valeur n'est pas claire d'après le contexte. Utilisez plutôt des constantes nommées.



Mauvais exemple :

double calculatePrice(double base) {    return base * 1.2 + 5.0;}


Bon exemple :

constexpr double TAX_RATE = 1.2;constexpr double DELIVERY_FEE = 5.0;

double calculatePrice(double basePrice) { return basePrice * TAX_RATE + DELIVERY_FEE;}


La même chose s'applique à la duplication de code. Si vous copiez un bloc de code plus d'une fois, extrayez-le dans une fonction. La règle DRY (Don't Repeat Yourself) est la base d'un code maintenable.



4. Les commentaires ne sont pas une excuse pour un mauvais code



Le meilleur commentaire est un code bien écrit qui ne nécessite pas d'explications. Les commentaires doivent expliquer pourquoi le code fait quelque chose de non évident, et non ce qu'il fait.



Mauvais exemple :



                
                

Blogs

Book Recommendations