CLASSE CLEARMBOX

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 12 juil. 2007 à 21:03
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011 - 13 juil. 2007 à 22:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43434-classe-clearmbox

rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
13 juil. 2007 à 22:41
OK... :o)
l2el2o Messages postés 7 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 13 juillet 2007
13 juil. 2007 à 22:40
Tu code pour toi mais tu poste ta source sur phpcs ? T'es un peu vicieux qd même ! lol
Quoi qu'il en soit, c'est vrai que pour un petit projet, sur lequel tu vas bricoler 2-3 semaines, la doc n'est pas le point plus important.

Mais quand t'as 25 fichiers qui font chacun 30ko, ça devient vite barbant de rechercher ou est la fonction pouet() qui fait telle chose, qd t'as pas mis le nez dedans depuis 6 mois. De plus, qd tu bossera plus tard (je sais pas si tu veux bosser ds l'informatique, mais ça doit aussi être valable dans d'autres domaines), tu va être amené à bosser avec une équipe sur un même projet. Donc la, si tu veux pas que toutes les 5 min tu ai un collègue qui te demande "hé, elle fait quoi ta fonction pouet() ?", tu documente proprement.

Et puis le problème en entreprise, c'est que t'as toujours un enc*** de chef qui se pointe un vendredi à 17h en te disant : il me faut la doc de ton truc pour lundi matin. Ds ce cas, tu fait *clic* sur le petit bouton de doxygen, et là, paf, ça fait des chocapic ! Et tu passe ton petit w-e tranquille, satisfait d'avoir couillonner ton supérieur qui croyait te pourrir ta fin de semaine!

Hé puis regarde les docs officielles d'une librairie, on ne te donne pas le corps de la fonction, juste son prototype, ce qu'elle prend en paramètre, ce qu'elle fait, ce qu'elle renvoi... Heureusement, car si on devait se taper les morceaux d'assembleur qui sont au coeur de certaines fonctions, la programmation serait une activité vite fatiguante (et elle l'est déjà assez comme ça certains jours).

Ce que je veux dire, c'est que tant qu'à prendre de bonnes habitudes, autant les prendre dès le début !
ps : si tu veux programmer sur edit, il existe toujours, même sur xp ;) (à tester sur vista)
Moi je préfère vim...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 juil. 2007 à 20:41
bah c'est sur que quand je tape $a=strpos(... , ...);, j'ai pas comme commentaire // recupere la position du .... dans ... si non trouve, false, mais quand j'ecris une class, t'as le principe de la boite noir :) ta class, personne d'autre que toi n'a a la lire, c'est la tienne, pas celle de ceux qui l'utilisent... si ils veulent modifier un truc, ils font une nouvelle class qui herite de la tienne, mais ils n'y touchent pas... mais alors, a quoi bon lire le code si on a pas a y toucher ? c'est la que ces logiciels interviennent : ca te listera les fonctions et membres de ta classe utilisables par une classe qui heritera de la premiere, avec tout les renseignements possibles, et de jolis shemats :)

c'est plus une question d'abstraction que de paprasse... j'ai pas non plus beaucoup de commentaires dans le corps de mes fonctions, mais avant, j'indique a quoi elle sert, ce qu'elle renvoi, quels sont ses parametres, et dans quels cas ca leve une exception (throw new Exception en php, ca se commente avec @warning en doxygen)

maintenant, c'etait une simple question... toi, si je veux faire une class qui herite de la tienne, bah je devrais me taper une lecture du code... si je fais une class qui herite d'une class de malalam, je lance doxygen ou phpdoc, je lis le html genere, et je code, sans avoir besoin de lire ce qu'il a fait :) c'est alors une vraie boite noir :)
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
13 juil. 2007 à 20:28
C'est justement ce que je ne veux pas, les trucs du genre :

/* @param[in] bla bla bla 1
** @param[in] bla bla bla 2
** @param[in] bla bla bla 3
** @brief bla bla bla 4
*/

Je code pour moi et non pour me faire valoir sur un site ou pour des raisons professionnelles avec des contraintes qui me seraient imposées par un employeur. Je fais donc comme bon me semble.

Je trouve (mais encore une fois ce n'est qu'un avis très personnel) que ce genre de source "bavasse" pour ne pas dire grand'chose de plus et rend le code moins lisible, tant celui-ci est incrusté dans du "baratin". Je préfère décrire succinctement le rôle d'une fonction ou d'une méthode (à l'exclusions des trucs genre arobase-truc qui à mes yeux ne correspondent à rien). Quand je relis mon code 6 mois plus tard, c'est largement suffisant. Il me semble que toute personne codant un tant soit peu en PHP n'a pas besoin de se taper 3 pages de commentaires pour comprendre ce que fait une fonction ou une méthode.

En fait, je n'ai pas envie de confondre la fin et les moyens. Ca me fait penser à l'employé un peu borné d'un service administratif qui trouve plus important qu'un imprimé soit renseigné conformément à ce qu'on lui a appris que la raison pour laquelle cet imprimé a été conçu.

Et puis ça ne vaut pas la peine que tu te prennes la tête à "doxygéner" la mienne ; comme je te l'ai précédemment dit je suis partisan du plus grand dépouillement possible. Si j'avais encore une machine sous DOS 3.22, je serai ravi de pouvoir coder avec Edit... :o) Pour résumer, ce qui compte le plus pour moi ce n'est pas que Victor Hugo ait écrit ses ouvrages avec une plume d'oie, un stylo à bille ou une machine à écrire, c'est ce qu'il a écrit...

Mais heureusement pour nous tous, nous avons des points de vue différents. C'est ce qui fait notre richesse collective...
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
13 juil. 2007 à 20:15
euh, j'ai pas encore lu la source mais je voulait juste dire qu'une fois, par initention j'avait mis un <? au lieu de <?php et sa marcher pas ^^
l2el2o Messages postés 7 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 13 juillet 2007
13 juil. 2007 à 17:51
Nan mais doxygen, c'est pas juste fait pour transformer ta source en latex, c'est fait pour faciliter la documentation du code. Allez, un petit exemple vaut mieux qu'un long discourt (c'est un exemple en C, mais pour du php c'est pareil):

Tu as par exemple une fonction
/**
* @param[in] im Pointeur sur l'image à allouer.
* @param[in] largeur Largeur de l'image.
* @param[in] hauteur Hauteur de l'image.
* @brief Alloue de l'espace mémoire pour une image d'entrée.
*
* Alloue de l'espace mémoire pour stocker une image d'entrée dont les dimensions
* sont spécifiées. Si une erreur survient lors de l'allocation, on quitte le programme.
*/
void allouerImageIn( ImageIn * im, unsigned int largeur, unsigned int hauteur )
{
// Le corps de la fonction
}

En gros, t'as des "balises" qui définissent des commentaires qui sont interprétés par doxygen (par exemple /// ou /** */. T'as aussi des mots clés, qui te permettent de définir une description courte (@brief), les paramètres (@param)...

Une fois que tu as documenté ton code, tu lance le doxy, qui parse les sources et trouve toutes les portions qui l'intéresse, puis génère plein de jolies pages html (latex, man, xml) dans lesquelles tu trouvera la description des fonctions/classes/[...] que tu as documenté. Comme ça, celui qui doit se pencher sérieusement dans ton code, bah il se prend moins la tête !
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
13 juil. 2007 à 15:51
Je ne veux pas dire mais si, à la lecture du code, on n'est pas capable de distinguer si c'est du php ou du xml à tel point qu'il faille marquer <?php pour le savoir, c'est grave...

Côté logiciel de documentation, je n'ai pas besoin de transformer mon source en LateX, PDF ou HTML, j'ai juste besoin qu'il soit correctement exécuté par un serveur web ordinaire, c'est tout. (NB: PDFCreator me suffit amplement et discuter sur ce point sur le choix de logiciel reviendrait à discuter sur le choix entre une Renault et une Peugeot. C'est une question de goût personnel). Et puis la rédaction et la lecture d'un source formaté avec la rigueur d'un moine bénédictin n'a jusqu'ici jamais flatté mon ego ni provoqué d'orgasme chez moi :o)

Excuse moi mais je n'ai pas compris le "yo C tro bi1"... ??? Ceci dit, tu as raison de ne pas utiliser ce code car je suis sûr que tu le rédigerais de façon plus efficace, toutefois merci de me proposer tes améliorations ; c'est gentil mais je pense que j'aurais progressé s'il avait porté sur l'algorithme plutôt que sur le formatage.

Pour ce qui est de PHP5 par rapport à PHP4, c'est sûr qu'avoir une formule 1 c'est plus satisfaisant qu'une 2CV mais si c'est juste pour aller faire mes courses... D'autant plus que je suis un fervent partisan d'en faire le plus possible avec le minimum : j'ai tellement vu de scripts ne pas fonctionner parce que tel ou tel hébergeur en étaient toujours à telle ou telle version d'Apache ou PHP !

Ceci étant, si tu passes tes vacances à travailler, j'espère que celui-ci t'apportera toutes les satisfactions que tu en espères... :o)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 juil. 2007 à 11:28
<? ca peut-etre du xml, donc ca peut porter a confusion,..

Oh cote logiciel de documentation, je parlais de doxygen, phpdoc, javadoc ou autre, ca te permet de transformer une source en documentation latex, pdf ou html (en inserrant des balises qui decrivent tes class et fonctions, les parametres, etc...)

je n'utiliserais pas ta source, donc je ne mettrais pas de commentaires genre "yo C tro bi1", moi je lis le code, et je propose des ameliorations :)

sinon, php5 propose des choses comme __tostring qui te permet d'afficher ton objet comme une variable string, utiliser l'heritage, les Exceptions, les interfaces, les private, tout ca ca apporte beaucoup :)

cote vacances, merci :) mais je les occupe avec un ... travail :)
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
13 juil. 2007 à 03:21
Merci d'avoir pris du temps à lire ces sources...

Tu as très probablement raison mais je ne trouve pas fondamental d'utiliser <? plutôt que <?php dans la mesure où les serveurs web sont quasiment tous configurés pour reconnaître les deux tags. Encore, s'il s'agissait de <% cela pourrait porter à confusion, mais là...

Par ailleurs, mon "vrai" logiciel de codage est généralement VI ou bloc-notes :o) Je n'engage que moi mais j'ai trop vu de gens se prétendant des "experts en html ou php" et être incapables d'écrire une page parce qu'ils n'avaient pas un Dreamweaver quelconque sous la main. C'est un choix personnel que de ne pas vouloir être dépendant d'un logiciel quel qu'il soit ; l'idéal à mes yeux étant de pouvoir coder sans erreur avec juste papier et crayon.

J'admets que mon formatage du code n'est pas forcément académique et ne répond pas à celui d'un logiciel ad hoc mais il a le grand avantage (tout au moins pour moi) d'être lisible à mes yeux ce qui me facilite la rédaction.

Certes, je n'aime pas écrire comme un sagouin mais j'attache plus d'importance à l'ingéniosité d'une classe ou d'un script tel que de "LOG DES ROBOTS QUI PASSENT SUR LE SITE" de 'etiennexxx9" (il fallait y penser...) qu'un code tiré au cordeau.

Et puis tu sais, je ne fais pas autant de POO que ça. C'est un peu par paresse. Par exemple, dans mon activité j'avais souvent besoin de faire des QCM mais j'en avais marre de refaire des scripts à chaque fois, d'où l'idée d'une classe commencée en 2002 et qui, petit à petit, a évolué en fonction de mes besoins. C'est comme la classe Liste, c'est celle que j'utilise le plus dans mes applications web ou wap. Mais je ne veux pas en faire un métier, je veux juste me faciliter la vie. Et si ça peut servir aux autres et leur éviter de réinventer la roue, ma foi, libre à eux de les formater comme bon leur semble. Enfin, quand j'en aurai épuisé toutes les fonctionnalités et que je me sentirai étriqué avec PHP4, je regarderai peut-être les versions suivantes car l'apprentissage d'un langage est toujours un investissement temps non négligeable et, c'est encore un choix personnel, je préfère approfondir si possible plutôt que de survoler les versions en passant de l'une à l'autre... :o)

Ceci dit, si tu as une idée pour une "grammaire" en langage quasi naturel pour définir des règles d'analyse de réponse à ma classe QCM (voir la doc), je suis grandement preneur...

Si t'es pas encore parti (ou si tu y es déjà), bonnes vacances...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
12 juil. 2007 à 21:03
tu devrais utiliser des regles de codage strict : pas de <? mais des <?php, des commentaires de codes avec un vrai logiciel fait pour ca, etc...

et surtout, si tu fais autant de poo, pourquoi te limiter a php4 ?
Rejoignez-nous