Dites “non” à la drogue (et aux frameworks)

La drogue et les frameworks ne sont qu’un paradis artificiel dont vous tomberez vite dépendant.

Ma première expérience

Ma première expérience avec les frameworks remontent quand j’étais assez jeune. J’étais niais et un peu arrogant. Des “plus grands” m’ont proposé de travailler sur un projet qui était assez complexe pour moi à ce moment : faire afficher des pages web avec du contenu dedans. Malgré que j’étais un peu réticent, j’ai tout de même accepter d’essayer. Wow! Je devenais enfin un “grand”. À moi le succès et les voitures sports!

J’étais donc seul le soir chez-nous et j’ai pensé que je pourrais commencer. Je regardais ce qui avait été fait ailleurs et les outils qui m’étaient offerts. Tout ça ne me convenait pas. C’est à ce moment que j’ai eu la grande idée (comme des milliers de développeurs avant moi) : je vais faire un framework.

L’escalade

Donc, j’ai commencé à écrire un petit framework, rien de complexe. Ça me permettait de mieux gérer les pages de mes sites. J’y ai mis quand même beaucoup de temps, plus que j’aurais pensé. Mais ça valait la peine, j’allais pouvoir le réutiliser dans chacun de mes projets.

J’ai eu une autre rencontre avec “les grands”. Ils m’ont demandé d’ajouter un principe de session. Comme les objets de session offerts par la plupart des plate-formes web ne faisaient pas mon affaire, j’ai eu la brillante idée d’ajouter les sessions à mon framework. Il prendrait en charge tout ce qui avait rapport aux sessions et une fois que toutes les possibilités possibles au monde auront été implémentées, je n’aurai qu’à m’en resservir dans tous mes projets.

Par contre, les sessions impliquaient aussi d’utiliser la base de données. No problemo! J’ai un framework, je vais ajouter tout ça dedans. C’était un peu complexe à faire j’ai donc décidé d’aller voir sur Internet comment les autres frameworks faisaient ça. J’ai donc repris leur façon de faire mais avec mon code.

L’enfer commence

Les “grands” me rencontrent une autre fois. Ils trouvent que ça prend beaucoup de temps et n’ont pas l’air très content. Je leur explique que j’ai dû faire mon framework mais que maintenant, chaque nouvelle demande sera beaucoup plus facile et rapide à faire. Ils ont l’air plus content mais la sueur dégoutte sous ma chemise.

Dans leur enthousiasme, ils me demandent d’ajouter une communauté à la sauce web2.0 et de leur donner une évaluation du temps (ils veulent maintenant savoir). Je leur dis que je vais revenir avec ça dans 3 jours.

Le problème, mon framework n’était pas du tout pensé pour faire ce genre de chose. Ce n’est pas grave, je vais encore l’améliorer et en plus, je vais pouvoir réutiliser la sauce web2.0 dans chacun de mes projets. J’évalue donc le tout à 3 mois.

Je rencontre les “grands” et leur parle du 3 mois. Leurs sourires se cassent et leurs yeux deviennent rouge. “Nous exigeons que tu le fasses en 1 mois” me crie le patron de leur “gang de grands” en mettant son poing sur la table.

Je n’ai plus le choix, je ne peux plus revenir en arrière…

Brûler en enfer

Je travaille des heures et des heures. Je hack mon framework pour qu’il puisse répondre aux requêtes des “grands” ce qui le rend de moins en moins réutilisable. Peu importe, je n’ai pas le temps de m’en faire pour ça, je dois sauver ma peau.

Un mois plus tard, je leur présente leur nouveau projet. Ils ne sont pas vraiment content du travail mais au moins, ça fonctionne parfois. Ils me paient pour 1 mois de travail (quand j’en ai littéralement travaillé 2) et ils repartent, me laissant seul. J’ai froid, j’ai chaud, je tremble, je me déteste.

Retour à la lumière

Après quelque temps, je me suis remis du projet. Mon framework n’est pas réutilisable mais au moins, il fonctionne.

Je rencontre alors d’autres “grands” qui me demandent un projet très semblabe à mon premier. C’est à ce moment que j’ai eu la grande idée : je vais faire un framework

7 commentaires sur cet article

Commentaires

  1. Frank 16 Avr

    C’était une histoire ou la réalité? Tu m’avais jamais parlé de ça en tout cas! Mais peu importe, je suis d’accord avec ce que tu avances.

    Selon moi, la meilleure raison de ne pas faire son propre framework est la charge de travail supplémentaire. En plus d’avoir à mettre à jour ses applications, il faut mettre à jour son framework. Tandis que si on prend un framework existant, on se concentre sur ses applications tout en bénéficiant des mises à jour apportées sur le framework que l’on aura choisi.

    J’ai également un peu de difficulté avec l’argument voulant que “les frameworks existants ne faisaient pas ce que je voulais”. C’est poussé un peu fort. Comment un framework comme RoR ayant été analysé et élaboré par des centaines de développeurs pourrait ne pas en offrir autant qu’un framework “maison” pensé et développé par un seul développeur?

  2. Emile 16 Avr

    C’est un bon exemple d’une baloune sur laquelle un programmeur peut partir facilement. À la limite, ce peut être une forme de procrastination. Quand on monte une application, on doit regarder de temps en temps si des éléments pourraient être fait de manière réutilisable. Le problème c’est quand on essaye juste de faire de quoi de réutilisable en regardant de temps en temps l’application elle-même. Le focus n’est plus sur l’application et forcément on est moins concentré sur la vrai tâche.

    En passant Dan, félicitation pour ton humilité. On a tous fait des erreurs du genre mais c’est pas tout le monde qui a le guts de l’écrire sur un site aussi achalandé (e-sarcasme)

  3. pm 17 Avr

    Bam sur les frameworks!

    Héhé je vous aime!

  4. Alex 17 Avr

    Maman, c’est quoi un framework ?

  5. Alexis 4 Mai

    Vive Drupal ;)

  6. Sylvio 4 Mai

    J’ai conçu un petit framework pour mes développements de site internet à l’agence pendant 1 an 1/2. Il me permettait surtout de faire des back-office pour différents types de base de données rapidement.

    C’était un très petit framework qui me faisait gagné du temps mais était très limité et m’a pris quand même bp de temps de développement.

    Au bout d’1 an, j’ai découvert les CMS qui commençait à être en vogue alors je me suis dit qu’il faudrait que je passe à un CMS mais je trouvais tous les CMS bien trop contraignant, ne permettant pas de faire des choses assez personnalisée. Je me disais donc qu’il fallait soit que ma version 2 soit un projet open-source mais je savais que je n’aurais pas le temps de gérer un tel projet et que c’était difficile.

    Un jour j’ai découvert Seagull qui répondait à mes attentes puis Symfony qui était la perle rare que je cherchais depuis au moins 6 mois. Symfony correspond exactement à tous ce que je cherchais et apportait même bp plus. Attention, ce n’est pas un CMS, c’est un framework PHP5, il apporte seulement des briques très pratique et permet de construire des applications web plus rapidement qui sont plus fiable, plus interactive (ajax), mieux construit.

    Le seul inconvénient est la phase d’apprentissage assez longue (j’ai commencé il y’a 1 an avec de petits sites statiques puis dynamiques et j’en suis aujourd’hui à mettre en ligne un site e-commerce) et complexe (il faut être un développeur web expérimentée). L’investissement est quand même très rentable, aujourd’hui je fais un bien meilleur boulot, plus rapidement.

  7. Frank 5 Mai

    Sylvio,

    C’est vrai que la phase d’apprentissage est pas évidente en ce qui concerne les frameworks MVC. Il faut prendre le temps de comprendre cette architecture. Ce qui est bien par contre c’est qu’une fois que tu en as compris un, tu risques de te retrouver dans tous les autres. Le langage derrière peur changer, mais le concept MVC existe depuis des années et reste le même.

    Ça fait longtemps que j’entends parler de Symfony. Est-ce que c’est meilleur que cakePHP selon toi?

Laisser un commentaire