Coder avec les pieds
Posté le 19/12/2014 12:50
Beaucoup savent programmer et écrire des lignes de codes en écrivant parfaitement, je fais ici une liste des choses à faire pour coder aussi dégueulassement que débilement:
1) L'indentation
voici un exemple d'indentation:
void a_function(void)
{
if (x == y) {
something1();
something2();
} else {
somethingelse1();
somethingelse2();
}
finalthing();
}
Savez vous ce qui dérange?, c'est ce rangement des instructions, conçu pour rendre plus lisible en code. Pour coder avec les pieds, il faut savoir indenter correctement, par exemple, n'indenter pas ou encore faite une indentation aléatoire.
void a_function(void)
{
if (x == y) {
something1();
something2();
} else {
somethingelse1();
somethingelse2();
}
finalthing();
}
ou encore
void a_function(void)
{
if (x == y) {
something1();
something2();
} else {
somethingelse1();
somethingelse2();
}
finalthing();
}
2) Ecrire sur une seule ligne
Mais oui, ça, c'est la bonne idée, certains langages comme le C autorisent l'écriture uni-linéaire
.
par exemple, voici un code trop facile
void a_function(void){ if (x == y) { something1();something2(); } else { somethingelse1();somethingelse2(); } finalthing(); }
3) Les commentaires
Mais ça sert à quoi, cette fonctionnalité? Absolument à rien. Le principe du commentaire sert à aider les autres à lire le code. Mais comme on se casse pas les c******* en écrivant un code complexe pour que les autres comprennent facile, mieux vaut oublier de les aider.
Par exemple,
void a_function(void)
{
if (x == y) {
something1(); //on fait quelque chose si x=y
something2();
} else {
somethingelse1();//si x=y, on fait autre chose
somethingelse2();
}
finalthing(); // en fin, on fait la dernière chose
}
4) Les noms des variables
Choisissez des noms non évidents pour vos variables et vos fonctions. Je vous conseille de prendre des noms de plus de 20 lettres choisis en hasard(taper sa tête sur le clavier si on ne sait pas choisir au hasard fonctionne aussi).
Préférez nuuFiuopjdOjij677NnlLIUYuyè_nyè9OYNoçypàçU87 à incrementation_de_qqchose
5) Les raccourcis
Ne mettez jamais de raccourcis, cela aide à la compréhension.
Par exemple, voici un code trop compréhensible:
var += 3;
var++;
structure_pointeur->var = 5;
Mettez plûtot
var = var + 3;
var = var + 1;
(*structure_pointeur).var = 5;
Si vous avez d'autres idées, envoyez les moi
Citer : Posté le 19/12/2014 20:47 | #
Je pense que n'utiliser qu' une seule lettre comme nom de variable pour... toutes ses variables est pas mal non plus.
On appelle pas ça du BASIC Casio ?
Oui
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 19/12/2014 23:00 | #
Importer des tonnes de librairies inutiles et noyer celles utiles dedans.
Faire des fonctions qui amènent a des fonctions qui ramènent à une autre fonction... jusqu'à revenir à la fonction mère.
Pong400
PierrePaCiseaux (CP400)
Les Triangles
Menu
ASCII
Nombres premiers
Citer : Posté le 19/12/2014 23:13 | #
Ne mettez jamais de raccourcis, cela aide à la compréhension.
Par exemple, voici un code trop compréhensible:
var += 3;
var++;
structure_pointeur→var = 5;
Mettez plûtot
var = var + 3;
var = var + 1;
(*structure_pointeur).var = 5;
Heu ça faut pas abuser non plus
Je te mets au défi d'écrire (*structure_pointeur).var = 5; à chaque fois !
Citer : Posté le 20/12/2014 10:43 | #
var++;
structure_pointeur→var = 5;
Mettez plutôt
var = var + 3;
var = var + 1;
(*structure_pointeur).var = 5;
Entre parenthèses, c'est tout aussi optimisé dans un cas que dans l'autre.
Citer : Posté le 20/12/2014 10:46 | #
(*structure_pointeur).var = 5;
Entre parenthèses, c'est tout aussi optimisé dans un cas que dans l'autre.
C'est pas au niveau de l'optimisation, c'est au niveau de la lecture que c'est plus difficile
Citer : Posté le 20/12/2014 11:49 | #
(*structure_pointeur).var = 5;
Entre parenthèses, c'est tout aussi optimisé dans un cas que dans l'autre.
C'est pas au niveau de l'optimisation, c'est au niveau de la lecture que c'est plus difficile
Yep, c'est pour ça que je l'avais mis entre parenthèses.
Sinon, on peut aussi accumuler les instructions (plus subtil) :
while(i<10) *(ptr+i++) = 0;
est moins lisible que
for(i=0;i<10;i++) *(ptr+i) = 0;
Au passage je viens de me rendre compte qu'on peut aussi écrire *(ptr+i) au lieu de ptr (j'utilise le premier quand je fais de l'adressage mémoire et le second quand je manipule vraiment des tableaux).
Sinon on peut aussi s'amuser à mélanger i++ et ++i, inverser le pointer et la variable dans la somme :
while(i<10) *(i+++ptr) = 0;
Ou alors y'a le fait de ne pas sauvegarder les valeurs utilisées plusieurs fois (ici le nombre d'octets pour stocker x bits) :
if(o<4) bmp->width = o;
else bmp->width = o+2;
ou
else bmp->width = ((x-1)>>3)+3;
Toujours dans les expressions condensées (setPixel(x,y,v) à peu de choses près) :
else *(vram+(y<<4)+(x>>3)) &= ~(128>>(x&7));
Y'a aussi les optimisations aux opérateurs logiques, le code inline, le code compilé dans les tableaux, le stockage de données brutes, les algorithmes quadratiques et j'en passe...
Citer : Posté le 20/12/2014 11:55 | #
On va essayer de se limiter aux bases
Citer : Posté le 20/12/2014 12:15 | #
Et les ternaires imbriquées ?
Citer : Posté le 20/12/2014 15:39 | #
Et les ternaires imbriquées ?
Et les ternaires imbriquées !
Citer : Posté le 21/12/2014 10:21 | #
Le hic avec l'indentation c'est que c'est impossible sur certaines calculatrices (par exemple le TI-83 Plus BASIC) et ça rend le code très difficile à lire du à la taille de l'écran. Sur HP Prime, par exemple, quand tu indente trop, tu te retrouves avec du scrolling horizontal qui n'en finit plus.
Citer : Posté le 21/12/2014 10:28 | #
Le hic avec l'indentation c'est que c'est impossible sur certaines calculatrices (par exemple le TI-83 Plus BASIC) et ça rend le code très difficile à lire du à la taille de l'écran. Sur HP Prime, par exemple, quand tu indente trop, tu te retrouves avec du scrolling horizontal qui n'en finit plus.
Sauf que sur le topic, tout le monde parle de C (effectivement en basic ou le moindre octet compte, on indente pas.. Et puis le basic des casios ne le supporte pas un seul espace dans le code et il renvoie une erreur...)
Coïncidence ? Je ne pense pas.