Écrire du code de haute qualité est essentiel à la réussite de tout projet logiciel, car il conditionne la fiabilité, les performances et la maintenabilité du code. Dans ce billet, nous allons présenter 10 bonnes pratiques essentielles issues de CppDepend pour écrire un code source C++ propre et efficace. Ces bonnes pratiques couvrent divers aspects du codage, comme les conventions de nommage, la gestion des erreurs, la gestion de la mémoire, et bien plus. Que vous soyez débutant ou programmeur expérimenté, suivre ces bonnes pratiques vous aidera à écrire un meilleur code C++ et à mener vos projets au succès.
1- Utilisez des noms de variables descriptifs et significatifs : Lorsque vous nommez des variables, choisissez des noms qui décrivent clairement le rôle de chacune et qui sont parlants pour le lecteur. Cela rend votre code plus facile à lire et à comprendre.
#include <iostream>
int main()
{
// GOOD EXAMPLE
int userAge = 25;
const int kDaysInWeek = 7;
std::string firstName = "John";
// BAD EXAMPLE
int a = 25;
int b = 7;
std::string c = "John";
}
2- Écrivez du code lisible : Utilisez une indentation correcte, des espaces et des commentaires pour rendre votre code plus facile à lire. De plus, découpez les longues lignes de code en blocs plus petits et plus faciles à gérer.
// GOOD EXAMPLE
for (int i = 0; i < 10; i++)
{
cout << i << endl;
}
// BAD EXAMPLE
for(int i=0;i<10;i++)cout<<i<<endl;
3- Utilisez la programmation orientée objet : Le C++ est un langage orienté objet : tirez donc parti de ses fonctionnalités, comme les classes et les objets, pour organiser et structurer votre code.
#include <iostream>
#include <fstream>
int main()
{
// GOOD EXAMPLE
std::ifstream file("data.txt");
if (!file.is_open())
{
std::cerr << "Error: Failed to open file." << std::endl;
return 1;
}
// Read and process file data here
file.close();
return 0;
// BAD EXAMPLE
std::ifstream file("data.txt");
// Read and process file data here
file.close();
return 0;
}
4- Évitez les variables globales : Les variables globales peuvent poser des problèmes dans les grands projets, car elles peuvent facilement être modifiées depuis différentes parties du code. Utilisez plutôt des variables locales au sein des fonctions et des classes.
// GOOD EXAMPLE
void printSum(int x, int y)
{
int sum = x + y;
cout << "The sum is: " << sum << endl;
}
// BAD EXAMPLE
int sum;
void printSum(int x, int y)
{
sum = x + y;
cout << "The sum is: " << sum << endl;
}
5- Utilisez la gestion des erreurs : Veillez à gérer les erreurs et les exceptions dans votre code, comme la division par zéro, les entrées invalides ou les accès hors limites aux tableaux.
// GOOD EXAMPLE
int main()
{
int dividend, divisor;
cout << "Enter dividend: ";
cin >> dividend;
cout << "Enter divisor: ";
cin >> divisor;
try
{
if (divisor == 0)
{
throw runtime_error("Division by zero.");
}
cout << "Result: " << dividend / divisor << endl;
}
catch (runtime_error &err)
{
cout << err.what() << endl;
}
return 0;
}
// BAD EXAMPLE
int main()
{
int dividend, divisor;
cout << "Enter dividend: ";
cin >> dividend;
cout << "Enter divisor: ";
cin >> divisor;
if (divisor == 0)
{
cout << "Division by zero." << endl;
return 1;
}
cout << "Result: " << dividend / divisor << endl;
return 0;
}
6- Gardez des fonctions courtes et simples : Les fonctions devraient être courtes et ciblées, avec un objectif unique. Si une fonction devient trop complexe, envisagez de la découper en fonctions plus petites et plus faciles à gérer.
// GOOD EXAMPLE
int add(int x, int y)
{
return x + y;
}
// BAD EXAMPLE
int addAndMultiply(int x, int y)
{
int sum = x + y;
int product = x * y;
cout << "Sum: " << sum << endl;
cout << "Product: " << product << endl;
return sum;
}
7- Évitez de coder les valeurs en dur : Au lieu de coder des valeurs en dur dans votre code, stockez-les dans des constantes ou des variables faciles à modifier. Cela rend votre code plus flexible et plus maintenable.
#include <iostream>
const int kDataSize = 100;
int main()
{
// Good example
int data[kDataSize];
for (int i = 0; i < kDataSize; ++i)
data[i] = i;
// Bad example
int data[100];
for (int i = 0; i < 100; ++i)
data[i] = i;
}
8- Utilisez les bibliothèques standard : Le C++ fournit un riche ensemble de bibliothèques standard, dont la Standard Template Library (STL), qui peuvent être utilisées pour accomplir des tâches courantes. L'utilisation de ces bibliothèques peut simplifier votre code et en améliorer les performances.
// GOOD EXAMPLE
#include <iostream>
#include <string>
int main()
{
std::string name;
std::cout << "Enter your name: ";
std::getline(std::cin, name);
std::cout << "Hello, " << name << "!" << std::endl;
return 0;
}
// BAD EXAMPLE
#include <iostream>
#include <string.h>
int main()
{
char name[100];
std::cout << "Enter your name: ";
std::cin.getline(name, 100);
std::cout << "Hello, " << name << "!" << std::endl;
return 0;
}
9- Gardez un code modulaire : Découpez votre code en modules plus petits et indépendants, faciles à tester et à réutiliser. Cela rend votre code plus maintenable et plus facile à modifier.
// GOOD EXAMPLE
if (temperature > 30)
{
cout << "It's hot outside." << endl;
}
else
{
cout << "It's not hot outside." << endl;
}
// BAD EXAMPLE
if(temperature>30)cout<<"It's hot outside."<<endl;
else cout<<"It's not hot outside."<<endl;
10- Documentez votre code : Veillez à ajouter des commentaires à votre code pour décrire son objectif, son utilisation et les hypothèses retenues. Cela permet aux autres de comprendre plus facilement votre code, et à vous de vous rappeler plus tard comment il fonctionne.
#include <iostream>
// Good example
/**
* Calculates the factorial of a given number.
*
* @param num The number to calculate the factorial of.
* @return The factorial of the given number.
*/
unsigned long long factorial(unsigned int num)
{
unsigned long long result = 1;
for (int i = 2; i <= num; ++i)
result *= i;
return result;
}
// Bad example
unsigned long long f(unsigned int n)
{
unsigned long long r = 1;
for (int i = 2; i <= n; ++i)
r *= i;
return r;
}
En suivant ces bonnes pratiques, vous pouvez écrire un code source C++ de haute qualité, facile à lire, à comprendre et à maintenir.
Téléchargez CppDepend gratuitement et vérifiez si votre code est bien maintenu !
