Ce document est susceptible d'être révisé.
La base de code augmente considérablement au fur et à mesure que le projet se développe, en fonction de son objectif et de son type. Une base de code incohérente compromet la lisibilité et la maintenabilité, ce qui nuit à la productivité individuelle ou de l'équipe.
Les normes de programmation ne sont peut-être pas nécessaires pour les bases de code à usage unique. Il est toutefois indispensable de suivre un guide de style de programmation pour éviter les incohérences dans la base de code et ne pas se retrouver dans l'enfer du débogage.
Le code propre n'existe pas, c'est un mythe, car la perception du code propre est subjective et varie selon les individus ou les équipes. L'objectif de ce document est d'éviter d'écrire du code illisible et de ne pas suivre aveuglément le « code propre ».
Un exemple simplifié de code obscur et profondément imbriqué)
#include <iostream>
#include <cstdlib>
void mergeSort(int *arr, int l, int r) {
if (l < r) {
int m = l + (r - l) / 2;
mergeSort(arr, l, m);
mergeSort(arr, m + 1, r);
int n1 = m - l + 1;
int n2 = r - m;
int *L = (int*) malloc(n1 * sizeof(int));
int *R = (int*) malloc(n2 * sizeof(int));
for (int i = 0; i < n1; i++) L[i] = arr[l + i];
for (int j = 0; j < n2; j++) R[j] = arr[m + 1 + j];
int i = 0, j = 0, k = l;
while (i < n1) {
if (j < n2) {
if (L[i] <= R[j]) {
arr[k] = L[i];
i++;
} else {
arr[k] = R[j];
j++;
}
} else {
arr[k] = L[i];
i++;
}
k++;
}
while (j < n2) {
arr[k] = R[j];
j++;
k++;
}
free(L);
free(R);
}
}
(plutôt que d'adopter celui des autres).
De nombreux guides de style et conventions de programmation C++ bien documentés, tels que le guide de style de Google et la norme de codage Unreal, sont disponibles en ligne. Malgré leur disponibilité, il est inestimable d'apprendre les raisons qui sous-tendent ces règles.
C++ Coding Standards | Pope's Dev Docs