hardcoder (avec un d) veut dire qu'une valeur est dans le code et n'est pas configurable. Pour moi il y a deux type de hardcodage; les magic number et les valeur hardcoder:
magic numbers:
int buffer[1024];
for (int i=0;i<1023;i++)
buffer[i]=foo();
valeur hardcoder:
const int buffersize = 1024;
int buffer[buffersize];
for (int i=0; i<buffersize-1;i++)
buffer[i]=foo;
Tu as aussi des variable configurable:
int buffersize = read_buffersize_from_conf();
int buffer[buffersize];
for (int i=0; i<buffersize-1;i++)
buffer[i]=foo;
Les magic numbers. C'est TRES mal tu te retrouves rapidement avec des valeurs qui sont tres difficile a comprendre. Lorsque tu va vouloir changer cette valeur, il va falloir faire plusieurs substitution dans le code. Donc forcement tu vas en oublier et faire des erreurs.
Entre les valeur hardcoder et les valeurs configurable, c'est principalement une question de quelles sont les configurations que tu veux expose a l'utilisateur ou a la personne qui va compiler l'application.