Partager l'article ! La rentrée du developpeur web: Voici une rentrée qui s’annonce très particulière en ce qui me concerne, puisqu’elle est marquée du sc ...
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 :
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 :
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é
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é 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 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.
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.
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.
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 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.
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.
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 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.
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é.
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.
Côté machine cliente, ce sont les technologies du web dynamique, attractif et accessible que j’ai choisi de mettre dans ma besace :
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.
Commentaires Récents