Coder from scratch

Publié le 20/07/2010

Voilà l’heure de la réflexion sur mes 9 ans de développement PHP. Je suis passé par un paquet de frameworks, de CMS, et je ne peux qu’apprécier d’avoir une standardisation de travail. Cela dit, alors que je tente de coder un petit site interactif et communautaire… je me suis passé de CMS ou de framework. Les raisons sont obscure, je suis parti de tests et j’ai continué à implémenter du code… et du coup j’ai oublié de passer par un framework. Sauf que voilà, le résultat fonctionne très bien, il est rapide… et je dois alors me poser la question: est-ce si bien de travailler avec un framework ou un CMS ?

Non je ne crache pas dans la soupe qu’on me sert. Je ne suis pas là pour déblatérer des guerres de clochers sur tel ou tel framework ou CMS, mais après être passé par EZPublish, Drupal, Jumlaa, Copix, Zend et autre… je pense pouvoir me faire une petite idée.

Ce que je vais vous expliquer relève en fait qu’il y a beaucoup de cas où il est peu judicieux de passer par un framework ou un CMS. Mais aussi que ces outils peuvent être au contraire un gain de temps. Alors avant de me hurler dessus, lisez bien mes propos :)

Tout d’abord l’idée du projet: un blog… bon c’est peut-être simpliste mais c’est un projet franchement répandu hein. De quoi j’ai besoin: -de faire un ticket (un article en fait, daté, tagué…) -mettre en forme -avoir un flux RSS

Ce que j’ai sous la main: -un serveur linux avec accès root -apache, php 5, sqlite ou mysql

Voyons ce que je peux faire. Soit j’utilise un CMS, au hasard: Drupal. Et voici ce que je dois faire: -poser mon drupal sur mon poste -le décompresser et commencer son installation -travailler un design, l’intégrer

Pour ces opérations, je vais avoir besoin d’un recours technique. Normal, mais il faut connaitre l’outil Drupal… les templates et le thémage est peut-être facile, il n’en reste pas moins que la moindre petite erreur me vaut de fouiller sur le net pour comprendre ce que j’ai foutu…

Par contre, en passant par l’admin, je trouve comment mettre mon flux RSS en marche, tout fonctionne directement et je n’ai plus qu’à passer mon site sur le serveur… oui mais…

Et oui, pas le même PHP, pas la même base… et me voilà en train de passer du temps à corriger mon installation pour que ça passe.

Si je le codais moi même ?

Oui allez, on va faire simple… je suis développeur quand même !

Déjà je commence par un petit gabarit HTML. Bon il est pas mal… j’attaque le code. D’abord une table de données… on va y mettre les tickets (id, titre, short, content, date, draft). Ensuite me reste à faire simple: un foreach sur la table pour afficher mes ticket dans mon gabarit…

Tiens en passant, je traite vite fait mon ticket pour faire du pseudo wiki (quelques regexp et c’est finit). Et allez on ajoute un formulaire pour les commentaire, un captcha avec pear…

J’ajuote un pager, je génère mon RSS, un table de tags et une table de liaison entre mes tags et mes articles.

Temps de l’opération: 2 heure en tout (gabarit compris)… alors me diriez vous, pourquoi on se fait ch..er à prendre Drupal ? Ba simplement parce que Drupal voit son code retravaillé, sécurisé et vous allez avoir des tas de modules pour configurer et faire évoluer votre site.

Par contre mon code généré à la main, il va vite… sans compter que je génère mon cache avec apc… je vous dis pas. Et puis le code est simple, clair, précis, adapté.

Voilà je veux être clair avec vous, PHP est mal utilisé dans 95% des cas… Pourquoi passer par des DAO (Data Access Objects) alors que les classes PDO incluses dans PHP sont très bien faite, gèrent les transactions, corrige les failles d’injection…

Pourquoi se battre avec du cache alors que APC a une API qui gère parfaitement cela ? Pourquoi passer par un moteur de template alors que PHP lui même est un moteur de template ? Pourquoi passer des heures à créer de modules alors que nous savons coder des classes proprement et rendre notre site très fonctionnel ?

Il est clair que beaucoup de cas contredisent ce que j’avance, par exemple les site de e-commerce sont complexes et franchement il vaut mieux passer par Magento plutôt que de se taper un développement interminable tout seul…

Mais j’ai passé un moment à faire quelques site “from scatch” pour voir à quel point on peut coder vite et bien un site fonctionnel et interactif… je vous assure que pour la quasi totalité le développement a été plus rapide et plus optimal que ce que je fais avec des Frameworks.

Pensez aussi à PEAR et PECL qui vous donnent des classes toutes prête pour certaines choses bien complexes à réaliser de zéro (soap, captcha, graph…).

Voilà, je me prépare à écrire un e-book sur le développement from scratch et les méthodes les plus fiables… donc si vous êtes intéressé repassez voir le site.

PS: je recode mon blog à la main… je pense que dans la semaine qui suit vous aurez droit à mon code en opensource.

comments powered by Disqus