Introduction

JavaScript fut, depuis sa création par Brendan Eich en 1995 jusqu’à l’arrivée du moteur JavaScript V8, considéré comme un langage de programmation limité au « scripting » de fonctionnalités pour navigateur. L’évolution des habitudes de consommation des technologies web et du cycle de développement d’applications en entreprise, apporte désormais de nouveaux enjeux et ouvre la voie à des perspectives en terme de solutions techniques. Nous sommes passés d’écosystèmes favorisant la mise en place de « Client lourd » au sein de réseaux d’entreprise fermés à un paysage interconnecté, décentralisé et répliqué. Dans cet article, nous introduirons comment Javascript devient une alternative crédible pour accompagner cette transformation digitale autant en B2C qu’en B2B.

Besoin d’Agilité

Historiquement, les entreprises privilégient l’utilisation de J2EE ou .Net quand il s’agit de réaliser des solutions web.

En effet, au niveau corporatif, la technique doit composer avec les contraintes en terme de budget, coût, délais et politique d’organisation de plateau de projet. Ces contraintes font que jusqu’à présent, les équipes de développement se reposaient principalement sur des solutions de type J2EE ou .Net afin de garantir une réponse mature aux besoins de maintenabilité, évolutivité et robustesse.  Market

Par ailleurs, JavaScript permet de répondre  à des problématiques grandissantes telles que la « scalabilité » et l’agilité. Sa nature légère, fonctionnelle est en adéquation avec ces besoins et  influence de plus en plus la prise de décision en matière d’architecture et de paradigmes de programmation. Même si Java et .Net restent au cœur de l’implémentation d’architectures applicatives, la flexibilité du JavaScript en font une alternative intéressante.

Javascript: une alternative qui gagne en maturité

Depuis la démocratisation du moteur V8 avec Node JS, JavaScript est devenu une alternative pour la réalisation de développements autant côté navigateur que serveur. Aujourd’hui, on peut réaliser des solutions web en suivant une approche monolingue et cohérente. En utilisant JavaScript et JSON comme format de donnée, on arrive à couvrir:

  • la récolte et gestion d’actions utilisateurs sur le navigateur (Angular, Knockout…)
  • la persistance de données (MongoDB) en utilisant un format unique (JSON, BSON)
  • la réalisation d’une une couche applicative en JavaScript (Express, Meteor…).

stack_js

Comme l’illustre le schéma ci-dessus, Les outils et Frameworks JavaScript sont aujourd’hui en plein essor et apportent des solutions sur toutes les couches nécessaires à la réalisation d’applications web d’envergure.

Focus sur AngularJS

AngularJS est un framework conçu pour le développement d’application web de type SPA.  Il se démarque largement des autres outils sur le marché pour la réalisation de grands projets. Supporté et développé par Google,  il englobe les caractéristiques suivantes :

  • Testabilité & Robustesse: Il vient accompagné de socles de validation (AngularJS scenario, Karma, Protractor) pour faciliter la réalisation de tests autant unitaires que bout en bout et ceci en temps réel. Par exemple, La modification de code javascript déclenche automatiquement une série de tests unitaires sur Karma. On obtient ainsi de manière systématique un rapport d’exécution de test nous indiquant si le code modifié a provoqué des régressions sur les règles métier.
  • Flexibilité & Modularité: L’injection de dépendance et l’aspect modulaire d’AngularJS permet de remplacer avec fluidité une fonction voir toute un partie du comportement de l’application. Cette modularité permet à de larges équipes de s’organiser et travailler en parallèle sur différents aspects/modules applicatifs en minimisant les interdépendances.
  • Séparation d’aspects: AngularJS apporte des concepts qui aident à structurer le code côté Javascript. Il permet de clairement faire la séparation entre différents aspects:
    • Manipulation de DOM par l’utilisation de « directives »
    • Implémentation de logique métier grâce aux « controllers »
    • Gestion d’accès aux données par l’utilisation de « services »
    • Manipulation de l’arborescence de données au travers du « scope »
  • Extensibilité: Ce Framework s’interface facilement avec d’autres outils du marché. Il contient nativement une implémentation légère de jQuery qui peut être remplacée suivant le besoin par l’implémentation complète.

En conclusion

Javascript offre désormais un cadre de développement de plus en plus pertinent et attractif pour le monde de l’entreprise, notamment avec des Framework tels qu’AngularJS. Après avoir entendu parler pendant plusieurs années du J2EE et du .Net comme étant des solutions naturelles en entreprise, nous percevons dès à présent les prémices de ce que l’on appellera probablement un jour, le Js2EE (JavaScript To Entreprise Edition). Nous accompagnons nos clients dans cet esprit de transformation agile et digitale en utilisant les techniques avec pragmatisme. AngularJS a été éprouvé sur différents projets et apporte des résultats très satisfaisants d’un point de vue technique tout en répondant au contexte organisationnel et métier de nos clients. Néanmoins, il est important de rester pragmatique, que ce soit du JavaScript du Java ou du C#, le contexte d’un projet peut rendre l’un ou l’autre pertinent pour l’élaboration d’une solution technique à forte valeur ajoutée.

L’image qui suit inspire à illustrer cette pensée…

o_love_reality