2012.01.10 par Patrick Desmarais

L'évolution du développement web

Le développement web a beaucoup évolué dans les 16 dernières années. Où en sommes-nous?

 

Développement webJ'ai commencé à faire du développement web en 1995. Pas comme passe-temps, mais comme travail. À l'époque, les navigateurs étaient tous basés sur Mosaic et le plus utilisé était Netscape Navigator. Mis à part le HTML de base de l'époque, on ne pouvait pas développer d'applications très intéressantes. Nous étions limités à des pages contenant du texte et quelques images de basse qualité par-ci par-là.

Avance rapide, 16 ans plus tard, le développement web n'a plus rien à voir avec ce que c'était lors de mes débuts. C'est maintenant une profession à part entière qui est encore peu connue et mal comprise. Contrairement à avant, où les « pages web » se composaient dans un éditeur de texte (pas un traitement de texte), les développeurs sérieux travaillent avec des outils (IDE) adaptés à leurs besoins. Cadre de développement d'application Web (Web Application Framework), interfaces de programmation (Application Programming Interface - API), système de gestion des demandes (Issue Tracking System), système de gestion de versions (Source Code Management), système d'intégration continue (Continuous Integration System), tous sont des outils qui font partie du quotidien dans une équipe de développement web.

Chacun de ces outils a son utilité particulière :

  • Framework - kit de composants logiciels structurels, qui servent à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d'un logiciel. Dans notre cas, la grande majorité des projets que nous développons sont programmés en PHP en utilisant le framework Symfony. La toute dernière version de notre système de gestion de contenu est maintenant basée sur Symfony2.
  • API - Interface qui permet d'accéder ou utiliser un programme (ex. : service web) via du code. Nous utilisons plusieurs APIs quotidiennement; Facebook, Twitter, Google Maps, Google Analytics, YouTube, Flickr, Campaign Monitor sont tous des exemples connus.
  • Système de gestion des demandes - Afin de faciliter la gestion de toutes les demandes qui peuvent être générées dans le développement d'un projet web par ses différents acteurs, il est primordial d'avoir un système qui permet le stockage, le suivi et la notification d'avancement de ces demandes. Nous utilisons, avec beaucoup de plaisir, depuis plus de 3 ans maintenant, un système développé en rails nommé Redmine. Nous ne pourrions plus nous en passer! Ce système est lié autant à nos courriels qu'à notre système gestion du code qu'à notre système d'intégration continue.
  • Système de gestion des versions - Un des maillons les plus importants lorsqu'on fait du développement logiciel, peu importe le type. Encore plus important lorsqu'on travaille en équipe et que plusieurs programmeurs travaillent sur le même projet. Ce type de logiciel permet de gérer les changements dans chaque fichier de code et aussi de gérer les conflits entre différentes versions du même fichier. Cet outil nous permet aussi de travailler sur des modifications à un projet dans une « branche » de code qui n'est pas celle qui est en production. Dans certains cas, nous avons de multiples branches d'actives pour un même projet lorsque plusieurs programmeurs travaillent sur différentes modifications sur un même projet en même temps. Une fois les modifications faites, le système facilite le travail de ramener le tout ensemble. Les outils les plus utilisés sur le marché en ce moment sont Git et Subversion (SVN).
  • Système d'intégration continue - Le système d'intégration continue est un outil qui vérifie, à chaque modification de code vérifiable dans le système gestion des versions, qu'aucune régression n'est causée par ces modifications. Concrètement, chaque fois qu'un programmeur soumet du code modifié, le système exécute automatiquement une série de validations (Checkstyle, Mess Detection, Copy-Paste Detection) ainsi qu'une série de tests que nous avons programmés pour valider le fonctionnement du site. Une fois ces validations et tests exécutés, les programmeurs et le chargé de projet reçoivent une notification par messagerie instantanée indiquant le résultat des tests. Si les modifications ont brisé une fonctionnalité ailleurs dans le projet, le programmeur ayant causé le problème le sait immédiatement et retourne tout de suite corriger le tout et la boucle recommence. Si tout se déroule correctement, le projet est déployé automatiquement sur un serveur interne pour une révision finale.

En plus de tous les outils mentionnés, les feuilles de style ont beaucoup évolué (elles n'existaient pas en '96) et le JavaScript est devenu un outil très performant grâce aux avancées des fureteurs modernes avec leur engin de compilation juste-à-temps.

Si je compare le développement web d'aujourd'hui à ce que c'était lors de mes débuts, le HTML, qui était la majeure partie du développement qui se faisait, mis à part quelques CGI développés en Perl, est maintenant la partie la plus simple, malgré le fait que nous devons tester chaque site dans au moins 4 fureteurs différents.

Le développement web est devenu avec le temps une discipline à part entière du développement logiciel et devient de plus en plus intéressant et puissant, d'année en année.

Tags :