Jeudi 30 août 2007 4 30 /08 /Août /2007 00:52
- Ecrire un commentaire

Voici une rentrée qui s’annonce très particulière en ce qui me concerne, puisqu’elle est marquée du sceau du changement. Après cette difficile mais constructive période de formation sur les technologies entourant le web dit 2.0, je peux avec confiance vous parler des techniques acquises au travers de nombreux ouvrages étudiés pendant ces longs mois et des longues journées passées à coder avec ténacité devant mon écran.
Aujourd’hui, c’est en tant que développeur web que je vais vous parler de l’ensemble des compétences que je peux mettre au service des entreprises et des particuliers intéressés par la création et les technologies d’un site web dynamique et attractif.

Avant d'aborder ensemble les notions de balisage sémantique, web services, interactivité, référencement naturel et accessibilité pour tous, ou encore, Ruby on Rails, J2EE, Ajax, Flash, XHTML et CSS, je vais brièvement vous présenter les exigences qui m’ont guidé dans ce maelstrom technologique :

  • des sites qui fonctionnent correctement, exempts de bogues, grâce à des pratiques de programmation rigoureusement orientées objet ;
  • l’évolutivité garantie par une architecture logicielle souple et extensible ; une sécurité fiable grâce au choix de langage et de plateforme de développement éprouvé pour leur robustesse ;
  • un code respectueux des conventions d’écriture, lisible et documenté qui pourra être repris par n’importe quel autre développeur ;
  • une accessibilité optimum établie par une séparation stricte des aspects sémantique, graphique et comportemental ;
  • l’apport de fonctionnalités et d’animations pour une ergonomie proche de celui d'une application de bureau.

Les problématiques du web actuel

Les pratiques du web actuel, ralliées sous la bannière du terme web 2.0, concentrent un certain nombre de problématiques engageant différents acteurs :

  • humains comme l’internaute, l’entreprise, le webmestre, le graphiste et le développeur,
  • non humains comme les moteurs de recherche, les sites web tierces, mais aussi les robots de collecte d'emails, les vers et autres troyens, à des fins de spamming.

Le principal défi du web 2.0 est d’apporter des solutions rigoureuses et pérennes à ces problématiques, qui sont principalement les suivantes : la visibilité, l’accessibilité, la sécurité, l’évolutivité et l’interactivité

La visibilité

Etre vu par le plus grand nombre d’internautes est évidemment la priorité principale de la très grande majorité des sites web. Le référencement dit naturel, au vu du nombre gigantesque de sites proposant un contenu similaire, est un enjeu majeur. La visibilité n’implique cependant pas que le référencement, ce qui nous amène au point suivant.

L'accessibilité

L’accessibilité ne concerne pas que les personnes souffrant d’un handicap physique ou cognitif (15% des internautes mondiaux), mais aussi les internautes visualisant des pages web depuis un mobile, PDA, pocket PC, tablet PC ou tout autre matériel ne supportant pas les modes d’affichage d’un ordinateur.

La sécurité

La recrudescence des détournements de site web (par le biais des formulaires de contact par exemple) à des fins de spamming et de phishing est une des nombreuses facettes de la problématique sécuritaire du web 2.0. Mais ce n’est pas la seule. La plupart des sites ayant des besoins important en stockage, traitement et gestion de données, une architecture solide et puissante côté serveur, exempte de bogue et de faille de sécurité est vitale.

L'évolutivité

De nombreux sites souffrent d’une maintenance lourde et d’une évolutivité coûteuse, du à un code brouillon, non portable ou propriétaire par manque de conventions d’écriture. L’évolution des enjeux métiers ou de communication d’une entreprise et des enjeux technologiques du web est incompatible avec du code spaghetti.

L'interactivité

Le degré de sophistication des applications de bureau creuse sans cesse le fossé ergonomique avec des pages web statiques ne connaissant ni le glissé déplacé, ni même la mise à jour des données sans rafraîchissement. La relation utilisateur/interface graphique est donc un des aspects important de la notion d'interactivité d'une application web. Elle n'est reste néanmoins que la partie visible de l'iceberg. La relation utilisateur/utilisateur représente un autre aspect qui caractérise fortement le web 2.0, illustré d'ailleurs par le bourgeonnement des sites éditoriaux à contenu coopératif, dont wikipédia et un exemple de réussite. Le dernier aspect de l'interactivité est celui caractérisé par la relation agent/ressource, plus connu sous le nom de web services, un protocole permettant l'échange de données entre applications à travers le réseau. NetVibes, le portail web français personnalisable, en est une illustration poignant.

Apporter des réponses justes

A chacune de ces problématiques peut-être apportée une solution adaptée, d’autant plus que cette solution est éprouvée, documentée et validée par de nombreux ouvrages de référence.

La visibilité

La réponse la plus adaptée au référencement naturelle est la séparation stricte du contenu (XHTML), de la mise en forme (CSS) et du comportement (JavaScript). Le document est alors structuré en XHTML/strict à l’aide d’un balisage choisi pour son apport sémantique, sans tenir compte de la mise en forme, ni du comportement. Cette pratique, conforme aux recommandations du World Wide Web Consortium, permet, entre autres atouts, de mettre l’emphase sur le sens du contenu, plûtot que sur sa mise en forme, favorisant ainsi l'extraction de ce sens par les moteurs de recherche.

L'accessibilité

Ce mode d’organisation du document permet une intégration optimum des contraintes d’accessibilité (l’accessibilité numérique devient une obligation pour les services de l'Etat, les collectivités territoriales et les établissements publics, depuis le vote de la loi [n° 2005-102 du 11 février 2005, article 47] pour l'égalité des droits et des chances, la participation et la citoyenneté des personnes handicapées). Les balises peuvent véhiculer des méta-données utilisées par certains périphériques (comme les lecteurs d’écrans pour mal ou non-voyants) et la mise en forme est alors appliquée grâce à des feuilles de style (CSS) qui peuvent ainsi différer selon le matériel. On peut alors avoir des mises en page pour plusieurs supports de visualisation : écran d’ordinateur, imprimante, téléphone mobile, PDA etc., ceci sans modifier le document XHTML.

L'interactivité

De même, l’interactivité par l’inclusion de comportement grâce à Ajax (comme l’assistance à la saisie, la vérification de formulaire côté client, l’animation graphique…) devient une couche supplémentaire. La prise en charge de JavaScript devient un plus, mais n’est pas obligatoire (non obstrusive JavaScript). Il faut garder à l'esprit que le JavaScript reste désactivé sur certains réseaux intranet d'entreprise ou de services publiques, pour des raisons de sécurité. La pratique d'une méthode itérative de développement (à chaque cycle correspond l’ajout d’une couche supplémentaire) est la base d’une architecture dite à dégradation élégante. Quel que soit le poste client, la page gardera sa cohérence. L'interactivité utilisateur/utilisateur (le web coopératif) et agent/ressource (les web services) se fait par le biais d'une architecture client/serveur où dans le rôle du client on trouvera indirectement l'utilisateur (son navigateur effectue une requête pour avoir une page) mais aussi le serveur du site web (qui effectue une requête auprès d'un autre serveur fournisseur de ressources, le premier devenant l'agent, le second offrant cette ressource).

La sécurité

La problématique sécuritaire présente de multiple facettes, mais trois d'entres elles sont à considérer avec attention. La première concerne la sécurité du serveur physique, ainsi que du serveur d'application hébergeant le site web.
Etant au cœur de Ajax, JavaScript présente bien des forces mais aussi bien des faiblesses. Les écarts permis par sa syntaxe peuvent conduire à l’existence de bogues insoupçonnés, qui peuvent mettre en danger la stabilité de l’application, du navigateur, ou encore ouvrir des failles de sécurité dans le système côté serveur. L’application d’une méthodologie globale de développement dite conduite par les tests et que d’une syntaxe rigoureusement orientée objet, associées à des choix judicieux de conception, de framework et de langage permet de réduire les risques au maximum.

L'évolutivité

A cette méthodologie s’ajoute le respect des conventions d’écriture, ainsi que la documentation permettant à tout développeur tiers de reprendre le code pour le modifier. Cet esprit open source garantit l’évolutivité de l’application dans le temps, par un code propre, correctement structuré, ouvert et documenté.

Des technologies éprouvées

Afin d’apporter ces services, j’ai fait des choix de langages d’architectures techniques relevant au mieux les défis du web 2.0, tant côté client (navigateur) que côté serveur.
J’ai vite été séduit par deux plateformes facilitant la création d’applications distribuées, car conçus initialement dans ce but, qui sont J2EE (Java Enterprise Edition) et Ruby on Rails. Ces deux plateformes peuvent apporter des solutions adaptées à des contraintes différentes, tout en garantissant la compatibilité et l’efficacité dans l’utilisation des principaux logiciels de base de données actuels.

  • Java est un langage sur, mur, stable et la plateforme J2EE est tout simplement la plateforme la plus aboutie aujourd’hui pour les applications distribuées que sont les sites web.
  • Ruby est un langage concis, rapide et innovant, réunissant le meilleur de smalltalk, python et perl. La plateforme Ruby on Rails permet une productivité jusque la jamais atteinte permettant ainsi de réduire le temps et le coût de développement d’un site web.

Côté machine cliente, ce sont les technologies du web dynamique, attractif et accessible que j’ai choisi de mettre dans ma besace :

  • XHTML pour un balisage structuré, portable et accessible ;
  • CSS pour une mise en forme externe, souple et adaptée au support ;
  • AJAX (Asynchronous Javascript And XML) pour des interfaces « clients riches », interactives et dynamiques ;
  • enfin ActionScript pour l’intégration d’animations Adobe Flash dans vos sites web.

Rester en veille

Un tel travail ne s’effectue pas sans collaboration, et c’est toujours un réel plaisir d’intégrer une équipe et de découvrir de nouvelles personnalités, de partager et d’acquérir de nouvelles compétences, comme ça pu être le cas avec Pierre Seydoux et Xavier Collet lors de la réalisation du site de l’agence de communication IKOO Design Sonore. A chaque nouveau projet de nouvelles rencontres, l’important pour moi en tant que développeur étant d’apporter la solution adaptée aux problèmes métiers des autres acteurs du projet (clients, designers ou autres développeurs), que ces problèmes aient une solution évidente ou non.

Bien que réaliser des programmes sur la base de compétences et techniques préalablement acquises soit gratifiant et productif, la veille technologique n'en reste pas moins importante. J’accorde donc un temps significatif à la lecture d’ouvrages et webzines spécialisés, afin de me tenir au courant des technologies émergeantes et le cas échéant, de me les approprier.

Que vous soyez de mes proches ou non, j’espère que ce billet vous aura éclairé sur la nature de cette activité de développeur, ainsi que sur la détermination et le degré de motivation qui m’accompagnent dans cette nouvelle voie.

Ecrire un commentaire - Voir les 1 commentaires
Retour à l'accueil

Syndication

  • Flux RSS des articles

Catégories

Commentaires Récents

Contact

Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus