Un code n'a pas besoin d'être commenté si il est bien écrit : Il se suffit à lui même
Ca c'est ce que beaucoup de monde aimerait croire…
Pour le second point oui, un commentaire qui n'est plus en relation avec le code est vraiment néfaste. Mais pas de commentaire aussi.
Le truc c'est que beaucoup de monde croit être meilleur que les autres, écrit forcément un bon code, donc pas besoin de commentaire. Bon, ce qu'on dit pas c'est que souvent c'est parce que ça fait chier les dev de commenter donc on trouve des excuses.
Maintenant il est évident que si ton commentaire n'est qu'une redite du code alors oui ça ne sert à rien.
De la même manière il est (de mon point de vue en tout cas) absolument idiot de vouloir coder en autre chose qu'en anglais. Pourquoi ? Parce que souvent on se retrouve avec ce genre de code :
// Pour chaque ligne du tableau, ...for(Stringrow:array){...}
Une fois écrit en anglias ça serait plus proche de :
// for each row of arrayfor(Stringrow:array){...}
Bon je dit pas que le deuxième cas n'existe pas, mais en général on va en anglais utiliser les mêmes mots. Donc on ne fait que réécrire le code dans un autre langage ce qui est idiot.
Bref, tout ça c'est bien joli mais ça n'explique toujours pas pourquoi il faut commenter. Simplement pour indiquer l'intention. Expliquer qu'un for parcoure un tableau on s'en fiche. Par contre, expliquer pourquoi on parcoure le tableau est très important.
Et dans le cas qui nous concerne ici, pour faire un jeu à partir de newton il faudra bien modifier le jeu, modifier le moteur du jeu. Et là, rien, nada. Comment fonctionne le moteur ? Aucune idée. Qui fait quoi, quelle classe, quel objet, rien. Je ne parle pas de commenter chaque ligne, mais au moins de décrire un peu ce qui s'y passe, à quoi ça sert.
Et pour en revenir à "un code n'a pas besoin d'être commenté si il est bien écrit" faut quand même faire attention à ce qui est derrière le si. Beaucoup pensent que c'est bien codé, mais si c'était réellement le cas on aurait pas besoin de faire des tests, pas besoin de tests unitaires, pas besoin de debugger, etc. Une api par exemple doit être commentée d'une manière ou d'une autre, sinon elle ne sert à rien. Et un code aussi, on doit documenter l'intention. D'ailleurs c'est ce qui permet aussi de relever des problèmes, et aussi toute ambiguïté (mais pourquoi il fait ça ?)
[^] # Re: question
Posté par CrEv (site web personnel) . En réponse au journal Créer son propre jeu de plateforme en forkant Newton Adventure. Évalué à 8.
Ca c'est ce que beaucoup de monde aimerait croire…
Pour le second point oui, un commentaire qui n'est plus en relation avec le code est vraiment néfaste. Mais pas de commentaire aussi.
Le truc c'est que beaucoup de monde croit être meilleur que les autres, écrit forcément un bon code, donc pas besoin de commentaire. Bon, ce qu'on dit pas c'est que souvent c'est parce que ça fait chier les dev de commenter donc on trouve des excuses.
Maintenant il est évident que si ton commentaire n'est qu'une redite du code alors oui ça ne sert à rien.
De la même manière il est (de mon point de vue en tout cas) absolument idiot de vouloir coder en autre chose qu'en anglais. Pourquoi ? Parce que souvent on se retrouve avec ce genre de code :
Une fois écrit en anglias ça serait plus proche de :
Bon je dit pas que le deuxième cas n'existe pas, mais en général on va en anglais utiliser les mêmes mots. Donc on ne fait que réécrire le code dans un autre langage ce qui est idiot.
Bref, tout ça c'est bien joli mais ça n'explique toujours pas pourquoi il faut commenter. Simplement pour indiquer l'intention. Expliquer qu'un
forparcoure un tableau on s'en fiche. Par contre, expliquer pourquoi on parcoure le tableau est très important.Et dans le cas qui nous concerne ici, pour faire un jeu à partir de newton il faudra bien modifier le jeu, modifier le moteur du jeu. Et là, rien, nada. Comment fonctionne le moteur ? Aucune idée. Qui fait quoi, quelle classe, quel objet, rien. Je ne parle pas de commenter chaque ligne, mais au moins de décrire un peu ce qui s'y passe, à quoi ça sert.
Et pour en revenir à "un code n'a pas besoin d'être commenté si il est bien écrit" faut quand même faire attention à ce qui est derrière le si. Beaucoup pensent que c'est bien codé, mais si c'était réellement le cas on aurait pas besoin de faire des tests, pas besoin de tests unitaires, pas besoin de debugger, etc. Une api par exemple doit être commentée d'une manière ou d'une autre, sinon elle ne sert à rien. Et un code aussi, on doit documenter l'intention. D'ailleurs c'est ce qui permet aussi de relever des problèmes, et aussi toute ambiguïté (mais pourquoi il fait ça ?)