Simple IT : le blog

Aller au contenu | Aller au menu | Aller à la recherche

lundi 28 juin 2010

Les renforts arrivent !

Avec actuellement 3 développeurs à plein temps (Romain, et 2 stagiaires : Joe et Louis), nous manquions cruellement de bras comme vous le saviez peut-être. Les projets de développement web ne manquent pas chez nous, entre la migration de tout le site vers le framework Symfony (un très gros projet), les nombreuses suggestions d'améliorations proposées par les membres et les améliorations que nous avons prévues de longue date, il y a de quoi faire !

Nous avons bien commencé notre important projet de migration. Celui-ci s'avère ardu et complexe, mais nous étions prévenus. Pas de surprise de ce côté-là, si ce n'est que cela prend du temps et qu'il nous reste encore du chemin à faire.

A l'heure actuelle, toutes les pages les plus simples ont été migrées (pages statiques, formulaire de contact...). Le système de codes web a lui aussi été migré grâce au travail de Benoît qui termine son stage ces jours-ci, et la nouvelle administration de la newsletter ne devrait pas tarder à être mise en ligne. Nos nouveaux développements, comme la bulle Zozor, se font à 100% sur symfony.

L'équipe des développeurs s'agrandit !

Malgré tout, nous avons encore du pain sur la planche, avec les modules de tutoriels, forums, boutique, news qui sont bien plus conséquents. Pour faire face à tout ce travail, et parce que nos finances nous le permettent progressivement, nous embauchons de nouvelles personnes et accueillons de nouveaux stagiaires pour la période estivale :

  • Ludovic : il s'agira de notre second développeur en CDI chez Simple IT. Son expérience en tant que développeur PHP / symfony nous sera précieuse pour notre projet de migration.
  • Vincent (aka vincent1870) : il a beaucoup oeuvré ces derniers mois pour mettre en place les fondations de la migration symfony, et c'est tout naturellement que nous lui avons proposé un poste en CDD cet été pendant ses vacances scolaires. Il nous sera d'une grande aide pour mettre au point la suite de la migration.
  • Martin (aka DJ Fox) : il connaît bien notre ancien framework et a une bonne expertise du système de tutoriels, dont il a réparé l'import/export et sur lequel il a mis au point un système d'échange de tutoriels avec les zCorrecteurs (car, il faut le noter, lui et Vincent sont aussi tous deux développeurs chez les zCorrecteurs !).
  • Kévin : nous le connaissons bien car il était en stage chez nous l'année dernière à la même période. Pour son retour, c'est un sujet tout à fait différent qui l'attend puisqu'il sera chargé de mettre en place une bonne partie du système d'informations de l'entreprise. Il aura fort à faire sur la mise au point et la configuration de notre ERP (OpenERP) et effectuera un certain nombre de développements pour personnaliser son code Python. Son travail consistera aussi bien à auditer notre fonctionnement actuel, qu'à proposer des solutions et à les mettre en place.

Toutes ces personnes démarreront le 1er juillet. L'été sera chaud chez Simple IT (et il commence à faire bien chaud, ça tombe bien) !

Un grand merci par ailleurs à Benoît qui, malgré sa présence partielle dans l'entreprise (2 jours par semaine), aura réussi à mener à bien les premières migrations symfony des codes web, de la zForm, du formulaire de contact et de l'espace presse !

Et ensuite ?

Notez que nous recherchons des stagiaires pour la période septembre - février, et que nous pouvons aussi accueillir des étudiants en alternance. Le profil recherché ainsi que le détail de l'offre se trouvent sur la page recrutements. Si vous connaissez des étudiants qui doivent effectuer un stage lors du premier semestre de l'année scolaire 2010-2011, n'hésitez pas à leur transmettre l'offre !

Enfin, sachez qu'il est probable qu'un nouveau poste de développeur en CDI soit disponible vers la fin de l'année. Nous vous tiendrons informés.

jeudi 18 février 2010

En route vers le SdZv4

Le Site du Zéro a maintenant 10 ans. Les choses ont beaucoup évolué depuis 1999 sur le Web : on ne conçoit plus du tout des sites web de la même manière. J'ai eu la chance d'observer cette évolution au fil des années et d'en faire profiter progressivement le Site du Zéro.

Route

Que de changements entre la toute première version en HTML 4 lancée un après-midi alors au collège, et l'actuelle version 3 qui sert de base à un site fréquenté par 2 millions de visiteurs uniques par mois ! L'évolution majeure du site, comme certains d'entre vous le savent sûrement, est arrivée avec cette fameuse "v3" qui a été développée en grande partie par Pierre Dubuc (karamilo) aujourd'hui mon associé, ainsi que d'autres personnes qui y ont participé de près ou de loin et qu'on n'oublie pas : winzou, Duael, IAN, Venom, zaz et bien d'autres.

Depuis le lancement de la version 3 en novembre 2005 (lors d'un après-midi pluvieux depuis un appartement miteux à Londres), le site n'a jamais cessé d'évoluer bien au contraire. Les modules du site se sont sans cesse développés, ont été améliorés, transformés, et il en est allé de même pour le design du site. Ce sont pour la plupart des évolutions réalisées par une poignée de bénévoles courageux (que nous ne remercierons jamais assez) mais aussi depuis 2 ans par les développeurs en stage chez Simple IT ainsi que par Romain qui est notre premier développeur salarié depuis fin novembre 2009.

Bref, comme vous le voyez, tout ceci a une longue histoire et les choses se sont accélérées pour nous récemment. A tel point qu'il y a généralement 2 à 3 développeurs en continu sur le site (ce qui reste très inférieur à nos besoins, mais cela va évoluer). Or, le travail en commun avec différentes façons de développer finit par montrer progressivement ses limites.

Le SdZ-framework de la v3

C'est Pierre qui a posé les bases du framework actuel dès 2003 (le lancement de la v3 ayant pris 2 ans à l'époque). Sa structure MVC et sa conception intelligente qui se focalise sur les performances ont permis au site de supporter l'évolution fulgurante du site ces dernières années. Nous sommes en effet passés de 3-4000 visiteurs / jour à 70 000 visiteurs / jour, toujours avec le même framework de base. Parvenir à supporter 2 millions de visiteurs par mois avec seulement 2 serveurs en pratique (un frontal web et un sql) tient parfois du miracle, mais c'est pourtant ce que nous faisons.

Or, le monde du Web a évolué rapidement et on entend parler notamment des framework RAD (Rapid Application Development) que sont :

  • Ruby on Rails (un des pionniers)
  • Django
  • Symfony
  • CakePHP
  • etc.

Ces frameworks font la même chose que notre framework actuel : ils gèrent toute la base du site et délèguent les tâches spécifiques à des modules. Ils ont comme particularité d'être plus lourds et plus lents en général car ils rajoutent plusieurs couches d'abstraction, ce qui fait qu'on peut dire sans prendre trop de risques que le sdzframework est pour nous le plus rapide. Normal, il est spécifiquement adapté au SdZ.

Cependant, tous ces frameworks ont aussi de nombreux points forts pour lesquels le sdz-framework a clairement un train de retard. Parmi eux, les bonnes pratiques de développement tels que les tests unitaires et fonctionnels, des outils avancés de débuggage, des systèmes relationnel-objet (ORM), des systèmes de migration de données, de tâches, l'intégration native d'outils Javascript et AJAX, etc.

Si nous avons implémenté progressivement une partie de ces choses-là au fil du temps, le tout manque de cohérence par rapport aux frameworks connus. Il faut aussi compter le temps de formation des nouveaux stagiaires et employés à notre framework qui n'est pas toujours évident à comprendre au début. Et, bien que ce ne soit pas un prérequis, notre framework actuel n'est pas orienté objet et ne peut pas bénéficier de fonctionnalités telle que l'héritage (je rappelle que la v3 a été développée à l'époque de PHP 4, donc toute POO était exclue).

Evoluer vers une v4 pour plus de clarté

Nous ne fonçons pas forcément dans un mur avec la v3 maintenant, mais il est clair que si un jour nous arrivons à une dizaine de développeurs dans nos locaux voire plus (ce qui est probable), il risque d'être un peu tard pour se rendre compte que nos outils deviennent trop limités ou trop délicats à maintenir.

Nous avons donc entamé il y a quelques mois un début de réflexion autour de la possibilité de faire évoluer le site et de le porter sous un framework connu. Les intérêts de passer à ce type de framework open-source sont nombreux :

  • Il ne sera plus nécessaire de maintenir les fonctionnalités de base du site (système de sessions, de comptes, de cache, de requêtes ajax) et on pourra se concentrer sur ce qui est spécifique au site et donc faire évoluer plus rapidement le site.
  • Le framework étant connu et particulièrement documenté, nous n'aurons pas à maintenir de documentation propre au framework.
  • Par conséquent, la durée de formation des nouveaux développeurs sera réduite et nous pourrons annoncer dans nos offres de stage / emploi qu'il est nécessaire de connaître Symfony.
  • On disposera d'outils puissants pour retracer les erreurs et même les anticiper, ce qui limitera considérablement les risques de régression.

L'idée centrale est de se concentrer sur ce qu'on appelle le métier, c'est-à-dire sur ce qui est propre au site, tout en se reposant sur une architecture solide en laquelle nous avons confiance.

Quand vous décorez l'intérieur de votre maison, vous n'avez pas besoin de penser à la charge que doivent supporter les murs porteurs ou à la meilleure façon de plâtrer du béton ? Eh bien avec un site web, c'est exactement la même chose. On préfère passer du temps à aménager l'intérieur plutôt qu'à se préoccuper de choses qui ne sont pas notre métier. ;o)

Pourquoi Symfony ?

Symfony

Les frameworks de qualité sont nombreux, j'en ai cité quelques-uns plus haut. Il fallait faire un choix là-dedans, en considérant :

  • La "facilité" de migration (toute relative car ça reste complexe)
  • La communauté et la pérennité du projet
  • Son caractère open-source, un élément indispensable à nos yeux pour pouvoir "hacker" le framework au besoin et probablement proposer des retours pour l'améliorer.

Les frameworks tels que Ruby on Rails et Django ont donc été exclus d'office, car ils sont basés sur d'autres langages (Ruby et Python) ce qui aurait demandé une charge de travail beaucoup trop importante.

Parmi les frameworks PHP, c'est Symfony que nous avons retenu pour la qualité de sa documentation, son tutoriel Jobeet (et nous on aime ça les bons tutos !), sa pérennité (le projet est activement développé et maintenu) et ses références (Dailymotion est en train de passer à Symfony, forcément ça motive et ça encourage !).

La (très) délicate migration

Il ne suffit pas d'avoir la volonté, il faut encore s'organiser. A ce titre, j'ai eu la chance de rencontrer le génial vincent1870 (pardon pour tes chevilles vincent) qui est un des principaux développeurs du site des zCorrecteurs. Il se trouve qu'il s'intéresse beaucoup à Symfony et qu'il a depuis quelques temps une bonne vue d'ensemble du sdzframework. Il a ces derniers temps fait un travail remarquable pour adapter Symfony à nos besoins, trouver une méthode de migration réaliste et progressive et documenter cette méthode. Depuis peu, Romain l'a rejoint pour l'aider à adapter certaines sections spécifiques tels que les crons.

Beaucoup de choses ont déjà été faites sur une branche Git de développement du site. A l'heure actuelle, nous arrivons à poser les premières bases de Symfony et à le coupler au sdzframework. En effet, il est inconcevable de geler le développement du site pendant qu'on le porte vers Symfony (ce qui représente beaucoup de travail). Nous allons donc le faire module par module, progressivement, en gelant les modules un à un.

La migration vers Symfony prendra forcément du temps, on l'estime entre 8 et 12 mois, ce qui est conséquent. Nous pensons mettre en production les premières bases vers la fin de ce mois-ci. Le SdZ semblera être exactement le même, si ce n'est que c'est Symfony qui traitera la requête et qui la routera soit vers l'ancien framework si le module n'a pas été porté, soit vers Symfony lui-même si celui-ci a été porté. Un des premiers modules à être porté devrait être le livre d'or (choisi en raison de son extrême simplicité :-° ).

Quels changements ?

Pour les visiteurs, il n'y aura aucun changement au début (à part peut-être quelques curieux bugs de temps en temps, on ne pourra pas y échapper ^^ ). A terme, ils verront de nouvelles fonctionnalités plus régulièrement, le tout sera plus cohérent et il y aura moins de bugs.

Pour les développeurs, le changement sera énorme au niveau de la structure du code. A terme, le développement du site devrait être beaucoup plus rapide, beaucoup plus facile et beaucoup plus sûr. Mais nous n'en sommes pas encore là. ;o)