cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 17 déc. 2009 à 10:00
J'ai moi aussi beaucoup ri face à ce code.
Les noms de variable sont horribles ! Normalement, un commentaire est là pour expliquer comment se servir d'une fonction. Un nom "explicite" ne dispense généralement pas de ceci. Tu n'es pas le premier à avoir eu cette fausse bonne idée. Sur le net, il y a un site qui regroupe les pires choses vus en matière de code, et ceci a déjà été décrit:
http://thedailywtf.com/Articles/CodeThatDocumentsItselfSoWellItDoesNotNeedComments.aspx
Un nom de variable/fonction doit être concis, le commentaire étant là pour donner des explications supplémentaires.
On va prendre un exemple:
void saisie_matrice(string nom_de_la_matrice , int nb_de_ligne , int nb_de_colonne , double **matrice , bool question_afficher_information_sur_mode_d_affichage__1_pour_oui_ou_0_pour_non).
Réécrit avec concision, et commenté en Doxygen (renseigne toi dessus, c'est très pratique, il peut générer un pdf de documentation à partir de tes commentaires, avec des schémas).
/*!
** Permet de saisir la matrice
**
** @param nom: Le nom de la matrice
** @param nbLigne: Le nombre de ligne de la matrice
** @param nbColonne: Le nombre de colonne de la matrice
** @param matrice: La matrice
** @param modeAffichage: Affiche des informations sur le mode d'affichage (1 pour activer, 0 pour désactiver)
**
*/
void saisie_matrice(string nom, int nbLigne , int nbColonne , double **matrice, bool modeAffichage).
Au niveau du code, tu utilises du C++ comme du C, c'est un peu dommage. Une classe Matrice avec une redéfinition d'opérateur aurait été largement la bienvenue.
Le mélange printf / std::cout c'est très moche. Tu sais que std::cout peut très bien formater la sortie ? (Regarde les iomanip).
Le niveau "initié" n'est pas justifié. Il n'y a rien de compliqué. Le niveau "débutant" est plus approprié.
@Cyberboy: "Bonjour"? merci pour ton commentaire. En ce qui concerne le nom des variables j'estime que chacun fait comme il le sens. En général j'en met des cours, mais comme je publie sur un site...et ce n'est pas un pb sur le long terme dans la mesure où le copier-coller et autocompletion existe (moi je m'en sert, et oui). De plus, cela me dispense de mettre des commentaires à côter. Et comme par exemple "chiffre_devant_etre_inferieur_a_dix" peut être >=10 avant de passer dans la boucle de division, le terme "unites" ne correspond pas. Chacun fait comme il le sens alors rigole tout seul :)
En ce qui concerne la structure matrice j'en mettrait éventuellement une, mais ce n'est pas ça qui va alléger le code.
Cyberboy2054
Messages postés173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 août 2008 16 déc. 2009 à 18:56
J'ai beaucoup ri devant les noms de variables, le "demande_et_restrictions_du_nombre_de_ligne_ou_de_colonne_d_une_matrice" m'a tuer.
Ceux que tu choisis sont explicites, c'est bien, mais sur le long terme, il est preferable d'avoir des noms de variables courts.
"chiffre_devant_etre_inferieur_a_dix", c'est long, "unites" est tout aussi parlant est bien moins long à taper (oui autocompletion blablah, tout le monde ne s'en sert pas), et au passage dans ce cas la c'est plus explicite :)
Tu peux virer tout les "le" "de" "du", et tout ce qui n'apporte rien à la compréhension de l'utilité de la variable: nb_de_ligne_de_la_matrice_A -> nb_lignes_A voire nb_lignes_mat_A si t'as peur de ne pas être explicite.
Ensuite tu aurais pu créer une structure matrice avec les champs essentiels (taille, données, et nom ici), ca aurait pas mal allégé le code.
17 déc. 2009 à 10:00
Les noms de variable sont horribles ! Normalement, un commentaire est là pour expliquer comment se servir d'une fonction. Un nom "explicite" ne dispense généralement pas de ceci. Tu n'es pas le premier à avoir eu cette fausse bonne idée. Sur le net, il y a un site qui regroupe les pires choses vus en matière de code, et ceci a déjà été décrit:
http://thedailywtf.com/Articles/CodeThatDocumentsItselfSoWellItDoesNotNeedComments.aspx
Un nom de variable/fonction doit être concis, le commentaire étant là pour donner des explications supplémentaires.
On va prendre un exemple:
void saisie_matrice(string nom_de_la_matrice , int nb_de_ligne , int nb_de_colonne , double **matrice , bool question_afficher_information_sur_mode_d_affichage__1_pour_oui_ou_0_pour_non).
Réécrit avec concision, et commenté en Doxygen (renseigne toi dessus, c'est très pratique, il peut générer un pdf de documentation à partir de tes commentaires, avec des schémas).
/*!
** Permet de saisir la matrice
**
** @param nom: Le nom de la matrice
** @param nbLigne: Le nombre de ligne de la matrice
** @param nbColonne: Le nombre de colonne de la matrice
** @param matrice: La matrice
** @param modeAffichage: Affiche des informations sur le mode d'affichage (1 pour activer, 0 pour désactiver)
**
*/
void saisie_matrice(string nom, int nbLigne , int nbColonne , double **matrice, bool modeAffichage).
Au niveau du code, tu utilises du C++ comme du C, c'est un peu dommage. Une classe Matrice avec une redéfinition d'opérateur aurait été largement la bienvenue.
Le mélange printf / std::cout c'est très moche. Tu sais que std::cout peut très bien formater la sortie ? (Regarde les iomanip).
Le niveau "initié" n'est pas justifié. Il n'y a rien de compliqué. Le niveau "débutant" est plus approprié.
16 déc. 2009 à 22:55
16 déc. 2009 à 20:45
En ce qui concerne la structure matrice j'en mettrait éventuellement une, mais ce n'est pas ça qui va alléger le code.
16 déc. 2009 à 18:56
Ceux que tu choisis sont explicites, c'est bien, mais sur le long terme, il est preferable d'avoir des noms de variables courts.
"chiffre_devant_etre_inferieur_a_dix", c'est long, "unites" est tout aussi parlant est bien moins long à taper (oui autocompletion blablah, tout le monde ne s'en sert pas), et au passage dans ce cas la c'est plus explicite :)
Tu peux virer tout les "le" "de" "du", et tout ce qui n'apporte rien à la compréhension de l'utilité de la variable: nb_de_ligne_de_la_matrice_A -> nb_lignes_A voire nb_lignes_mat_A si t'as peur de ne pas être explicite.
Ensuite tu aurais pu créer une structure matrice avec les champs essentiels (taille, données, et nom ici), ca aurait pas mal allégé le code.