pour nourrir le troll (http://linuxfr.org/~jcs/10947.html(...)), j'expose mon point de vue:
Les commentaires çàpueçàsertarien !
pourquoi ? parce qu'on ajoute des commentaires si le code n'est pas clair! dans ce cas il faudrait mieux clarifier le code non ?
changer le nom des fonction/variables, decouper en plus de fonction pour decouper le code...
** plutot que:
// faire un truc
[...]
// faire un autre truc
[...]
**
faireUnTruc();
faireUnAutreTruc();
** plutot que:
for(i=0;i<1024;i++) {}
**
for( numeroDeFace=0; numeroDeFaces<nombreDeFaces; numeroDeFaces++ ) {}
des commentaires sur un code crade çà ne rend pas le code propre !
ps: bien sur il faut documenter dans les entetes, les fonctions et leurs parametres, et ne pas hesiter a expliquer un algo...
# Re: çà sert a rien les commentaires
Posté par passant·e . Évalué à 2.
comment ça je nourris le troll!!!
ha je dois partir.
je refuse!!!
Je trolle dès quand ça parle business, sécurité et sciences sociales
[^] # Re: çà sert a rien les commentaires
Posté par ukemi . Évalué à 1.
voir même $ship->getSizeByCaptainAge($age);
ça va c'est pas encore trop la mort comme nom de fonction, et je preferre ça que d'ajouter un /* cette fonction récupère la taille du bateau en fonction de l'age du capitaine */ qui est beaucoup plus verbose pour pas grand chose de plus (s/pas\ grand\ chose/rien ?).
:>
[^] # Re: çà sert a rien les commentaires
Posté par passant·e . Évalué à 0.
Je trolle dès quand ça parle business, sécurité et sciences sociales
[^] # Re: çà sert a rien les commentaires
Posté par seginus . Évalué à 1.
[^] # Re: çà sert a rien les commentaires
Posté par plagiats . Évalué à 0.
[^] # Re: çà sert a rien les commentaires
Posté par MsK` . Évalué à 2.
---------> [/ ha bah la porte est cassée je sors pas
[^] # Re: çà sert a rien les commentaires
Posté par troll hunter . Évalué à 3.
Savoir bien nommer et de manière simple les différents objets d'un est aussi important que le reste. Plus c'est simple, mieux c'est (comme pour la conception).
Par contre pour la pérénité de mon travail, je ferais plutôt
int TBat (int : ACap) { ... }
Comme cela moi seul peux le relire.
[^] # Re: çà sert a rien les commentaires
Posté par Boa Treize (site web personnel) . Évalué à 4.
Bravo, tu es irremplaçable : jamais viré, jamais promu.
# Re: çà sert a rien les commentaires
Posté par Pinaraf . Évalué à 1.
Détailler quand même toutes les 10 lignes d'un bloc de code où l'on en est par exemple, c'est utile si le bloc fait 200 lignes (oui on doit le couper en fonctions...)
En fait, lors d'une opération simple mais longue, c'est utile pour savoir l'état de la progression...
[^] # Re: çà sert a rien les commentaires
Posté par troll hunter . Évalué à 2.
[^] # Re: çà sert a rien les commentaires
Posté par manuel . Évalué à 2.
Je n'aime pas trop ce "dogme", il se discute, je trouve.
Je préfère parfois une grosse fonction que plusieurs petites, à laquelle il va falloir passer des arguments. Même pour une simple relecture, c'est pas toujours évident de sauter d'un appel de fonction à l'autre, avec en plus les données qui changent de nom entre l'appelant et l'appelé.
[^] # Re: çà sert a rien les commentaires
Posté par Boa Treize (site web personnel) . Évalué à 2.
Ctrl-] et Ctrl-T (dans vim) sauvent la mise. :)
[^] # Re: çà sert a rien les commentaires
Posté par manuel . Évalué à 2.
Enfin, comme je disais, ça se discute ; il y a aussi des cas où c'est préférable d'avoir plusieurs petites fonctions. C'est juste que je n'aime pas le côté "il FAUT faire des fonctions"
[^] # Re: çà sert a rien les commentaires
Posté par totof2000 . Évalué à 1.
Cependant si les fonctions sont bien découpées (ex une fonction pour une tache précise), ca permet en cas de relecture de code de lire uniquement la partie qui t'intéresse. Je préfère lire ce genre de code:
faire_ceci(a);
faire_cela(b);
plutot que le code correspondant à faire_ceci et faire_cela en un seul bloc.
Dans le cas ou le bug est dans faire_cela, je n'ai pas à relire faire_ceci.
Si je veux comprendre le fonctionnement d'un programme je sais que faire_ceci est censé faire ceci, et je ne m'occupe pas forcément dans l'immédiat de _comment_ il le fait. Je peux y revenir lorsque j'ai une idée globale du fonctionnement du programme.
[^] # Re: çà sert a rien les commentaires
Posté par #3588 . Évalué à 1.
On n'est jamais obligé de passer des arguments, tu places tes variables locales au module, quitte à faire un module pour ça. ("module" à remplacer en fonction du langage).
# Re: çà sert a rien les commentaires
Posté par Conrad . Évalué à 8.
Comme dit Aimé Jacquet "ça ne coute pas plus cher de bien manger".
# Re: çà sert a rien les commentaires
Posté par Eric Boulat . Évalué à 1.
C'est une technique bien connu du codage auto-commenté.
C'est une trés bonne méthode si tu codes tout seul. Par contre si tu dois fournir une libraire à quelqu'un, il souhaitera avoir un fichier entête avec une documentation précise de chaque fonction et chacun de ses paramètres.
Remarque, le top c'est de faire les deux !
[^] # Re: çà sert a rien les commentaires
Posté par Pinaraf . Évalué à 2.
"ps: bien sur il faut documenter dans les entetes, les fonctions et leurs parametres, et ne pas hesiter a expliquer un algo..."
# Re: çà sert a rien les commentaires
Posté par Boa Treize (site web personnel) . Évalué à 2.
[^] # Re: çà sert a rien les commentaires
Posté par Pinaraf . Évalué à 0.
Il y a encore des programmeurs qui créent des bugs ???
[^] # Re: çà sert a rien les commentaires
Posté par fred point . Évalué à 1.
[^] # Re: çà sert a rien les commentaires
Posté par plagiats . Évalué à 1.
un programme sans bug, c'est un hello world en java par Pierre Tramo.
[^] # Re: çà sert a rien les commentaires
Posté par #3588 . Évalué à 1.
[^] # Re: çà sert a rien les commentaires
Posté par Guinns . Évalué à 2.
En effet, le commentaires ne sont pas la pour décrire ce que l'on fait mais pourquoi on le fait ...
Imagine un algo qui contrôle la validité d'une date; dans le cas des années non bissextiles, on va refuser les 29 février, ton code sera donc du type
/* on refuse le 29/02 si on n'est pas bissextile */
SI (annee NON bissextile ET jour>28 ET mois==2 )
ALORS retourne ERROR;
Et bien dans ce cas, le commentaire explique le "pourquoi métier".
Pour cet exemple, tout le monde sait que seules les années bissextiles possèdent un 29/02, mais dans une appli métier, tu ne peux présupposer des connaissances métier des futurs codeurs, d'où une explication nécessaire dans le commentaire.
[^] # Re: çà sert a rien les commentaires
Posté par manuel . Évalué à 1.
SI (annee NON bissextile ET jour>28 ET mois==2 )
ALORS retourne ERROR;
Bref, on dit en français ce que fait le code. Ca permet de lire les sources rapidement en ne lisant que les commentaires.
Pour moi c'est un commentaire "QUOI". Il en faut, et je trouve qu'ils rendent le code plus agréable à lire.
Les commentaires "POURQUOI et COMMENT" ont à mon avis plus leur place dans des grosses cartouches en tête de fichier ou de fonction.
[^] # Re: çà sert a rien les commentaires
Posté par jemore . Évalué à 2.
se passe de commentaire...
[^] # Re: çà sert a rien les commentaires
Posté par manuel . Évalué à 2.
C'est une erreur si ta fonction renvoie une valeur non nulle quand on lui passe 29, 2 et 2004 ?
[^] # Re: çà sert a rien les commentaires
Posté par #3588 . Évalué à 1.
Non. Tout ce qu'il y a à savoir sera dans l'entete de la fonction qui contient ça.
# Re: çà sert a rien les commentaires
Posté par Christophe Discours (site web personnel) . Évalué à 2.
http://mindprod.com/unmaindocumentation.html(...)
[^] # Re: çà sert a rien les commentaires
Posté par Gabriel . Évalué à 2.
How to write unmaintainable code
Un grand classique (pour moi en tout cas)
Un des textes les plus drôles et constructifs qui soit. Franchement, je l'ai lu j'ai cru que j'allais m'étouffer tellement je rigolais et puis ce texte est resté comme un parfait catalogue des choses à ne pas faire. J'y pense tout le temps.
Une sorte d'Anti-pattern mais en plus drôle!
Mangez-en!!
(ça va j'en ai pas trop fait?)
(ça c'était un commentaire inutile)
(ça c'était aussi un commentaire inutile)
(ça c'était aussi un commentaire inutile)
(ça c'était aussi un commentaire inutile)
.
.
.
A++
# Re: çà sert a rien les commentaires
Posté par KiKouN . Évalué à 8.
// Mais où as-tu la tête. C'est pas beau ça. Va au dodo et reviens demain quand tu auras retrouvé tes esprit.
// Si vous relisez ce code: prévoyiez une aspirine.
// Changelog:
// *26/04/04 : Ajout de commentaires
// Rappel: Faut que tu paye ta facture de téléphone
// crac crac time. dsl je finirai demain.
// Bon en C, les tableaux commencent à 0
// Ctrl-s pour sauvegarder et à faire souvent.
// Blague: (ça détend)
// C'est un ptit pois qui va à la boulangerie et demande: "Bonjour, je voudrai deux baguettes"
// La boulangère: "Désolé, il ne me reste plus que des pains."
// le ptit pois: "Ha bin, ça fait rien, je suis en mobylette."
// !!!!
// SuseCaPuPlus.CestLibre
// pour les commentaires CF: http://linuxfr.org/~kassoulet/10959.html(...)
[^] # Re: çà sert a rien les commentaires
Posté par KiKouN . Évalué à 1.
// pour mettre un peu de couleurs. C'est plus gai comme ça. (sous un éditeur qui colorise le code bien sur).
# Re: çà sert a rien les commentaires
Posté par Florent C. . Évalué à 1.
C'est bien beau ça, mais là on sait juste qu'on passe sur toutes les faces, on ne sait pas quel traitement on fait dessus, et c'est pour ça qu'un commentaire serait bienvenu juste au dessus du for, pour dire voire expliquer quel traitement on fait.
En fait il faudrait commenter non pas pour dire ce que chaque ligne fait, mais ce que chaque bloc de 3-4 lignes fait, en une phrase simple.
Exemple pas bon :
/* mettre 5 dans l'age de toto */
toto.age = 5;
/* mettre "toto" dans le nom de toto */
toto.nom = "toto"
Exemple bon :
/* preparer les donnees de la fiche de toto */
toto.age = 5;
toto.nom = "toto"
Cela dit, il est évident que des noms de variable bien choisis aident énormément à la relecture du code. Et il ne faut pas avoir peur d'utiliser des longs noms de variable/fonction, ne jamais les abréger, ça les rend illisible !
Exemple pas bon :
/* initialise l'age de toto */
sta(age);
Exemple bon :
/* initialise l'age de toto et calcule l'annee de naissance */
set_toto_age(age);
Ici, les commentaires peuvent en plus informer l'utilisateur sur un traitement que fait la fonction et qui ne transparait pas de façon évidente dans le nom de la fonction, même si cela reste logique par rapport au traitement.
[^] # Re: çà sert a rien les commentaires
Posté par #3588 . Évalué à 1.
/* initialise l'age de toto et calcule l'annee de naissance */
set_toto_age(age); »
C'est du même niveau que « mettre 5 dans l'age de toto ». Ce commentaire devrait être inutile si
- le commentaire du module ou de la fonction est complet
- le module ou la fonction n'est pas trop long
S'il y a besoin d'un tel commentaire, c'est qu'un de ces deux points ne va pas du tout...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.