Rappelez-vous : dans mon article « Fuck you Masterboy », je mentionnais ce fameux site où j’avais crée mes premières lignes en PHP. C’était vers 2002-2003. Et comme je le mentionne dans « Comment archiver sans trop pleurer », je suis en train de gratter dans mes sources pour déterrer mes vieux projets.
Et ça tombe bien, j’ai trouvé les sources de ce site, que je mets à dispo sur Github : amelaye/MasterboyForEver . Alors pourquoi je fais ceci car en fait, c’est assez difficile de le faire marcher, peut-être même impossible pour certains.
Parce qu’il y a eu beaucoup de mes élèves, lors des cours que j’ai menés, qui ont pas mal culpabilisé. Entre autres une jeune femme remplie de détermination et de bonne volonté, mais également dotée d’une faible confiance en elle, que j’avais mentorée pour Openclassrooms. J’avais énormément apprécié cette mission, car elle avançait vite et elle voulait réussir son année, des qualités qu’on prof/mentor ne peut qu’admirer. Elle (ainsi que d’autres) tenait hélas parfois une petite moue, et un œil triste « mais non je fais de la m…, la preuve je peux pas être autonome, je pompe des scripts par ci par là, je comprends pas pourquoi ci pas pourquoi ça, toi tu sais le faire, je voudrais coder comme toi. » … Et là, en position de lotus dans ma toge blanche, je lui répondais systématiquement « de temps et de patience tu necessiteras … ». Car ses doutes étaient normaux, je les avais traversés. Du coup j’ai eu envie de raconter l’histoire de ce site et de son affreux code qui marchait quand même.
Pour contextualiser le projet, en fin 2002 j’étais en licence pro internet, sortant d’un BTS qui n’avait rien à voir, et n’ayant à mon actif que des sites full HTML et bidouillages JS. La programmation, je n’en avais aucune notion, et la pire des surprises que cette licence m’avait faite a été de commencer par l’apprentissage de …
… JAVA …
Oui. Ils ont fait ça.
Bon bref, inutile de dire que j’avais complètement décroché cette partie-là, et que ce qui avait sauvé mon année a été le HTML, les bases de données et la communication. Dans le lot il y avait du PHP, le langage que je voulais absolument apprendre, bien que découragée par les cours. Dans ce cas, il n’y a pas de secret, il me fallait trouver un projet qui puisse à la fois me motiver et me permettre d’utiliser et comprendre PHP. A l’époque je tenais un site sur Masterboy, qui marchait plutôt bien, car il était le seul site francophone qui parlait à ce point du groupe, du coup c’est ainsi j’ai voulu sortir de ma zone de confort.
J’ai commencé par prendre un script existant pour faire une « fan-zone » dans laquelle on pouvait s’inscrire et partager dans cet espace. Puis quand j’ai fait mon stage, j’ai voulu mettre un peu plus les mains dans le cambouis, mais tout en piochant par-ci par là des bouts de code que je trouvais sur le web (sérieusement il n’y a pas mieux pour comprendre). C’est vraiment du taf de débutant, on y remarque entre autres :
- Les shorts tags. Bon à l’époque ça se faisait pas mal d’utiliser les shorts tags, je me souviens qu’en licence on ne nous avait pas déconseillé de les utiliser.
- Les multiples appels aux scripts de connexion. Au cas où le premier ne marchait pas, les autres peuvent mieux marcher, pensais-je.
- Douce époque où les requêtes n’étaient pas préparées. A cette époque je pensais aussi qu’il fallait faire des mysql_num_rows() après chaque requête même si on n’en avait pas besoin. On ne sait jamais qui peut le plus peut le moins, nesspa. D’ailleurs sur admin/liste.php la requête y est deux fois … on ne sait jamais, je vous dis.
- Ne me parlez pas de la programmation objet, je n’ai rien compris à ça.
- C’était bien de récupérer les variables en get du genre « num= » en $num, register_globals c’était la belle vie … puis PHP5 est arrivé et ça a changé.
- Gros embrouillamini sur mboy.php mais comme ça marchait, je ne me suis pas soucié de ça (j’ai hélas été longtemps adepte du « tant que ça marche casse pas les noix de coco. » à mes dépens …).
- Le camelCase ? Nan connais pas …
- L’indentation ? Mais ça marche, donc casse pas les noix de coco.
- Ha les die() avec des erreurs bien explicites … et puis la profusion de @ devant les fonctions au cas où il y aurait un bug mais chut …
ET SURTOUT : Je bidouillais parfois direct « en prod », surtout les bases de données. Et donc un jour, en voulant exécuter le script qui effaçait un post, bien ça m’a … TOUT effacé 🙂 j’étais sans filet, je n’avais aucun utilitaire pour sauvegarder mes bases (en même temps je ne maîtrisais à l’époque pas du tout Linux donc j’étais en mutualisé), et je n’avais même pas pensé à l’utilité d’un dump avant toute manipulation #lalose … ce qui explique le joli message en rouge sur la page d’accueil 😀 … voilà voilà …
Donc voilà ce que j’avais pondu à l’époque. Mais je m’auto-pardonne, parce que je sais que je devais commencer et on fait tous des choses moches quand on commence. Du coup comment puis-je flageller mes élèves qui sont de bonne volonté mais culpabilisent de leur rendu ?
Rendez-vous dans 10 ans pour que je voie votre super-code, les amis 😉