Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#976 Le 22/10/2011, à 19:43

grim7reaper

Re : /* Topic des codeurs [6] */

@helly : ta vieille adresse hotmail est toujours active.
Je viens de recevoir un spam de sa part lol

Hors ligne

#977 Le 23/10/2011, à 08:05

The Uploader

Re : /* Topic des codeurs [6] */

grim7reaper a écrit :

C’est que du code…
Jpense pas que remplacer :

int main(void)
{
    std::vector< boost::shared_ptr<Attaquant> > liste_attaquants;

    Attaquant* a = new AttaquantA;
    liste_attaquants.push_back(a);
…

par

int main(void)
{
    std::vector< boost::shared_ptr<Attaquant> > attackers_list;

    Attacker* a = new AttackerA;
    attackers_list.push_back(a);
…

demande un gros effort. OK, les commentaires c’est plus chiant à faire en anglais, mais le code ça va.

Sinon tu codes ton TD en Baguette on Snails tongue



[HS]le fu- : cette année jme retrouve officieusement avec une LV4, ça commence à faire beaucoup ^^'[/HS]

<trolldi>
[prof d'Agile/TDD] De toute façon un commentaire pour expliquer le code ça veut dire que le code n'est pas lisible, est trop compliqué et pas maintenable dans le temps : pas assez d'abstraction, par exemple  Et il arrive un moment où on a la flemme de mettre à jour les commentaires... [/prof d'Agile/TDD] tongue

Perso je suis assez d'accord au regard de mon expérience perso. Par contre, je crois si je suis en train de lire du code C archi compliqué (genre celui du x264), y'aura pas assez d'abstraction pour me sauver, les commentaires et/ou une autre forme de doc' (commits) seront indispensable pour comprendre, ne serait-ce qu'un peu. ^^'

</trolldi>

Dernière modification par The Uploader (Le 23/10/2011, à 08:07)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#978 Le 23/10/2011, à 09:39

grim7reaper

Re : /* Topic des codeurs [6] */

The Uploader a écrit :

[prof d'Agile/TDD] De toute façon un commentaire pour expliquer le code ça veut dire que le code n'est pas lisible, est trop compliqué et pas maintenable dans le temps

lol
Et la marmotte…
C’est beau les grandes tirades théoriques, j’en verserai presque une petite larme tellement c‘est touchant de naïveté.

À ce compte‑là, on va dire que les tests ça ne sert à rien : ça veut dire que le code est mal écrit, est trop compliqué et manque de souplesse (bah oui, faut écrire des tests pour vérifier qu’on casse rien donc c’est la faute du code) roll

C’est facile de toujours rejeter la faute sur le code (surtout quand c’est pas le sien roll) : je comprends pas, bah ça vient pas de moi c’est la faute du mec qui sait pas coder (des fois c’est vrai, des fois non).
Généralement, c’est surtout que le gus code différemment de nous (point de vue visuel d’une part, mais parfois aussi niveau raisonnement) et comme comprendre demande un effort (ouh, c’est fatigant ça !) bah on va dire que le code est mal écrit (ou pas assez abstrait, ou trop compliqué, ou…) hein ! C’est plus simple !

Je connais pas ton prof, mais sur ce coup il dit de la merde.
Trop de commentaire c’est mal, des commentaires dans la fonction elle-même ça reste rare (généralement en en-tête ça suffit). Mais pas de commentaire du tout, faut vraiment jamais avoir mis le nez dans du « vrai » code qui ne t’appartient pas pour prôner de telles énormités.



Et puis t’es en retard : trolldi c’était hier !

Dernière modification par grim7reaper (Le 23/10/2011, à 09:42)

Hors ligne

#979 Le 23/10/2011, à 10:06

helly

Re : /* Topic des codeurs [6] */

+4 à grim smile.


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#980 Le 23/10/2011, à 10:08

grim7reaper

Re : /* Topic des codeurs [6] */

@helly : t’as vu mon HdP ?
C’est inadmettable mad



tongue

Hors ligne

#981 Le 23/10/2011, à 11:01

helly

Re : /* Topic des codeurs [6] */

Ha ?
Ma sœur aussi Oo
Pourtant non, je me suis bien désinscrit cette adresse mail n’existe plus !
Peut être justement pour ça que les spams l’ont reccupérée…
Sinon, je savais même pas que tu avais eu mon adresse hotmail oo !


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#982 Le 23/10/2011, à 11:03

grim7reaper

Re : /* Topic des codeurs [6] */

helly a écrit :

Sinon, je savais même pas que tu avais eu mon adresse hotmail oo !

Bah si big_smile
Je t’avais même sur Jabber (et je t’avais aidé à configurer vsftpd d’ailleurs, c’était fin janvier 2010 il me semble).

Dernière modification par grim7reaper (Le 23/10/2011, à 11:05)

Hors ligne

#983 Le 23/10/2011, à 11:12

Pylades

Re : /* Topic des codeurs [6] */

ArkSeth, c’est normal que blacklist ne soit plus pris en compte dans ~/.config/touhy/deskman/devices.list ?


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#984 Le 23/10/2011, à 11:18

tshirtman

Re : /* Topic des codeurs [6] */

Pas besoin d'avoir une adresse mail, ni meme qu'elle existe, pour écrire un mail depuis cette adresse, hein. S'ils savent que cette adresse existe ou a existé, ça leur suffit pour penser que les spams passeront mieux s'ils viennent de cette adresse.

Hors ligne

#985 Le 23/10/2011, à 11:34

helly

Re : /* Topic des codeurs [6] */

grim7reaper a écrit :
helly a écrit :

Sinon, je savais même pas que tu avais eu mon adresse hotmail oo !

Bah si big_smile
Je t’avais même sur Jabber (et je t’avais aidé à configurer vsftpd d’ailleurs, c’était fin janvier 2010 il me semble).

Et la partie de wesnoth que j’ai allègrement foirée \o/ !



Bon, rien à voir, quelques questions pour mon TD.

D’abord les traits, voir si j’ai bien compris : est ce que m’en servir pour savoir la taille d’une unité c’est bien un bon usage des traits ?
Exemple

template <class C>
struct the_size
{
    static const unsigned int value = 0;
};

template <>
struct the_size <UniteA>
{
    static const unsigned int value = 1;
};

template <>
struct the_size <UniteB>
{
    static const unsigned int value = 2;
};

Que j’applique :

…
std::cout << "la taille d’une unité A est de "<< the_size<UniteA>::value<<'\n';

Ce qui me permet de connaître la taille sans avoir à créer un objet de la classe.
C’est bien à ça que ça sert ou je me trompe ?

Autre chose, je me souviens que pour un constructeur (ou autre), on dit que c’est mieux de faire

Classe(int x, int y):abs(x),ord(y)

Plutôt que

Classe(int x, int y)
{abs = x; ord = y;}

*
Mais avec mes neurones en bouillie, je me souviens plus pourquoi c’est mieux !
On peut me re-éclairer svp ? hmm


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#986 Le 23/10/2011, à 12:01

grim7reaper

Re : /* Topic des codeurs [6] */

helly a écrit :
grim7reaper a écrit :
helly a écrit :

Sinon, je savais même pas que tu avais eu mon adresse hotmail oo !

Bah si big_smile
Je t’avais même sur Jabber (et je t’avais aidé à configurer vsftpd d’ailleurs, c’était fin janvier 2010 il me semble).

Et la partie de wesnoth que j’ai allègrement foirée \o/ !

Ha oui, aussi smile

helly a écrit :

D’abord les traits
[…]

D’un point de vue syntaxique c’est correct.
Après, point de vue sémantique, pourquoi ne pas utiliser un membre statique constant ? Ça reviendrai au même, mais en moins compliqué je pense.
Jpense que sortir une classe de trait pour ça c’est un peu overkill (bon après je manque encore un peu d’expérience sur les traits et leurs usages, mais c’est l’impression que ça me donne).

helly a écrit :

Autre chose, je me souviens que pour un constructeur (ou autre), on dit que c’est mieux de faire

Classe(int x, int y):abs(x),ord(y)

Plutôt que

Classe(int x, int y)
{abs = x; ord = y;}

*
Mais avec mes neurones en bouillie, je me souviens plus pourquoi c’est mieux !
On peut me re-éclairer svp ? hmm

FAQ wink

Hors ligne

#987 Le 23/10/2011, à 12:51

Pylades

Re : /* Topic des codeurs [6] */

Y a-t-il un moyen simple de parser du XML en Python ? Un genre de truc un peu comme BeautifulSoup, mais qui permettrait en plus de valider le document si on fournit un DTD et d’écrire un fichier XML.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#988 Le 23/10/2011, à 12:56

grim7reaper

Re : /* Topic des codeurs [6] */

Peut-être lxml.
Elle fait au moins la validation (donc forcément le parsing), pour l’écriture je ne sais (pour l’existence d’une version Python 3, idem je ne sais pas).

Apparemment, libxml2 fait aussi de la validation.

Dernière modification par grim7reaper (Le 23/10/2011, à 12:58)

Hors ligne

#989 Le 23/10/2011, à 13:18

The Uploader

Re : /* Topic des codeurs [6] */

t'as pwned mon trolldi. big_smile

C'est clair que les commentaires ne sont pas inutiles et sauvent toujours. Perso je crois que le mec il fait trop de Java. Java s'pour les gosses, le C façon x264 sans commentaire t'es foutu. tongue

Sauf quand y'en a à chaque ligne (j'ai fait ça une fois). C'est de la merde à mettre à jour ensuite, et ça nique la lisibilité.


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#990 Le 23/10/2011, à 13:54

Elzen

Re : /* Topic des codeurs [6] */

Πυλάδης a écrit :

ArkSeth, c’est normal que blacklist ne soit plus pris en compte dans ~/.config/touhy/deskman/devices.list ?

Ouaip, c'est que t'as mal lu le commentaire sur le changement de config :

moi-même, sur mon site, a écrit :

Pour découper ce fichier : tout ce qui concerne les positions des icônes sur le bureau est à transférer dans deskman/devices.list. En gros, il ne doit contenir que des sections dont le nom représente un chemin d'accès (/dev/XXX ou /mnt/YYY), et qui ne contiennent que les entrée xpos et ypos. Le fichier system/devices.list contient tout le reste de ce qui concerne les points de montage. Enfin, system/vfs.list contient ce qui concerne les supports virtuels (images disques ou infos de périphs réseaux).

Le blacklistage se fait au niveau du moteur, donc dans ~/.config/touhy/system/devices.list tongue

(Ceci dit, j'pourrais éventuellement rajouter une blacklist spécifiqueaux icônes du bureau, pour que le périph soit toujours listé ailleurs, mais juste pas affiché sur le bureau… j'n'avais pas fait parce que j'considérais qu'au pire, tu pouvais juste foutre des coordonnées négatives à l'icône pour pas la voir, mais c'est vrai que ce serait plus propre comme ça. Pour les fichiers, aussi. J'essayerai de penser à rajouter ça pour la prochaine release.)

Hors ligne

#991 Le 23/10/2011, à 14:09

Rolinh

Re : /* Topic des codeurs [6] */

Il faut savoir où est le juste milieu. Du bon code, ça doit pouvoir se lire comme un livre (ou presque). Si tu as besoin de trop commenter, c'est que ton code est pourri. En revanche, il peut arriver que certaines parties du code soient un peu plus difficile à appréhender et qu'elles nécessitent un commentaire. Par exemple, dans LinCopier, on fait un mappage en mémoire des fichiers de moins de 8Mb: c'est typiquement le truc qui nécessite d'être commenté afin d'expliquer pourquoi on fait cela.
Normalement, je commente mes fonctions en expliquant brièvement quel sont leur rôle et, le cas échéant, quel sont leur retour.

Hors ligne

#992 Le 23/10/2011, à 14:11

The Uploader

Re : /* Topic des codeurs [6] */

Exactement ce que je pense et fait. Je crois que le prof est trop extrêmiste. big_smile

Dernière modification par The Uploader (Le 23/10/2011, à 14:35)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#993 Le 23/10/2011, à 14:18

tshirtman

Re : /* Topic des codeurs [6] */

oui, les commentaires ne doivent pas dire ce que fait le code (sauf optimisation rendant illisible, qui sont un cas extrème), mais pourquoi, il le fait. smile

Hors ligne

#994 Le 23/10/2011, à 14:27

grim7reaper

Re : /* Topic des codeurs [6] */

Yep, on en revient à ce que je disais :

/me a écrit :

Trop de commentaire c’est mal, des commentaires dans la fonction elle-même ça reste rare (généralement en en-tête ça suffit). Mais pas de commentaire du tout, faut vraiment jamais avoir mis le nez dans du « vrai » code qui ne t’appartient pas pour prôner de telles énormités.

Trop c’est trop (typiquement le ligne à ligne, sauf en assembleur bien sûr), dans la fonction c’est pour des cas précis (l’exemple de Rolinh en est un, les optimisations de brutes faites dans les codecs en sont d’autres) sinon mettre en en-tête de la fonction une description générale des E/S et du principe de la fonction suffit (si le code est bien fait).

Hors ligne

#995 Le 23/10/2011, à 14:28

tshirtman

Re : /* Topic des codeurs [6] */

c'est sans doute la faute à python, mais dans les en tetes, je considère ça comme de la doc, pas comme des commentaire tongue.

Hors ligne

#996 Le 23/10/2011, à 14:33

grim7reaper

Re : /* Topic des codeurs [6] */

tshirtman a écrit :

c'est sans doute la faute à python

C’est aussi en Emacs Lisp, et je crois que ce dernier est plus vieux que Python tongue

tshirtman a écrit :

mais dans les en tetes, je considère ça comme de la doc, pas comme des commentaire tongue.

Bah je ne vois pas le souci : c’est de la doc’. D’ailleurs mes commentaires d’en-tête finissent généralement par devenir des commentaires Doxygen.
Les commentaires c’est bien une forme, primitive certes, de documentation.

Hors ligne

#997 Le 23/10/2011, à 14:36

The Uploader

Re : /* Topic des codeurs [6] */

tshirtman a écrit :

c'est sans doute la faute à python, mais dans les en tetes, je considère ça comme de la doc, pas comme des commentaire tongue.

c'est aussi le cas en Ruby. tongue

d'ailleurs un équivalent à doctest serait rubydoctest.


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#998 Le 23/10/2011, à 14:36

Elzen

Re : /* Topic des codeurs [6] */

En ce qui me concerne, je mets un commentaire par fonction pour expliquer à quoi elle sert et éventuellement quels sont les paramètres attendus (ça dépend si c'est une fonction complètement interne ou pas, dans le second cas, j'en mets pour que la personne qui va s'en resservir puisse savoir rapidement ce qu'il faut ; dans le premier, je n'en mets que si je considère que le rôle de chaque param n'est pas évident en lisant le code). Ça, c'est le minimum.

Pour le code lui-même, je groupe les différentes lignes en fonction de ce sur quoi elles portent, et je mets un commentaire global, un peu comme un titre sur un paragraphe. Gerne ça :

import gtk

# Création de la fenêtre.
win = gtk.Window()
win.set_title("Ma fenêtre")
win.set_icon(my_icon)

# Réglage du comportement.
win.set_keep_above(True)
win.set_decorated(False)
win.stick()

# Affichage.
win.show_all()
gtk.main()

À peu de choses près.

Et puis bien sûr, quand le code ne me semble pas évident à lire, j'mets des commentaires plus précis pour dire ce que ça fait exactement. Si j'suis d'humeur bavarde, je mets aussi des commentaires pour expliciter les tests et les boucles. Si j'suis d'humeur pas bavarde du tout, je n'mets quasiment rien, voire rien du tout (mais j'essaye d'éviter, quand même).

Dernière modification par ArkSeth (Le 23/10/2011, à 14:37)

Hors ligne

#999 Le 23/10/2011, à 14:47

HP

Re : /* Topic des codeurs [6] */

Allez, un peu de rails, et comme j'ouvre tous mes fichiers depuis le terminal avec open (script perso utilisent du pygtk), et bien mes documents récents en gardent une trace :

2011102313193773061680x.png

Je pense refaire mon blog en rails… parce que bon, PHP c'est pas ce qu'il y a de mieux… et j'ai besoin de quelque chose de fiable sur l'UTF-8 ; donc, bon, on va pas attendre PHP 6 tongue.


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#1000 Le 23/10/2011, à 15:03

Rolinh

Re : /* Topic des codeurs [6] */

@ArkSeth: j'espère que, si tu commentes en français, tu évites au moins les accents (pas comme dans ton exemple donc..).

Hors ligne