SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
L’AVENIR DU
WEB S’ÉCRIT-IL EN
JAVASCRIPT ?
Auteur : Jean-Guillaume Dujardin / Pierre Vaidie
Novembre 2013

JavaScript était déjà bien installé sur nos navigateurs. Il est depuis passé côté serveur
(avec Node.js). Et maintenant, il se structure côté client. Des frameworks JavaScript
émergent…
 

BIBLIOTHEQUE OU BIEN
FRAMEWORK, QUELLE DIFFERENCE ?
Vous-vous dites : « Pour le JavaScript, pas besoin de me casser la tête, on a déjà
JQuery, c’est bien suffisant ». C’est vrai, JQuery est devenu presque universel. C’est
la bibliothèque la plus utilisée. Mais cela reste une bibliothèque.
Les Frameworks sont différents des bibliothèques car ils guident l’architecture
logicielle.
Schématiquement, on a le principe suivant :

En fait, ces frameworks sont nécessaires à de nouvelles architectures…
 

QUOI, UN NOUVEAU TYPE
D’ARCHITECTURE ?
On dirait que les technologies sont un éternel recommencement… On pensait avoir
trouvé une architecture universelle : un navigateur, un serveur PHP, des bases de
données MYSQL. Patatra ! Parfois, ce type d’architecture ne suffit plus : l’ergonomie
des sites devient de plus en plus complexe, la vitesse d’exécution de l’affichage et
des traitements est de plus en plus importante (il n’y a qu’à voir les études faites par
Google ou Amazon sur la corrélation entre le taux de transformation et les
performances), les clients qui se connectent sont de plus en plus différents (mobiles,
tablettes), le big data ou bien encore la montée en charge des applications
nécessitent de gérer d’énormes quantités de données.
Ainsi, le client doit à nouveau prendre en charge une partie croissante des
traitements, comme au bon vieux temps des architectures « client lourd ».

ARCHITECTURE CLASSIQUE
CLIENT
Requêtes lourdes.
Affichage des pages HTML complètes.

SERVEUR
Requêtes traitées au fur et à mesure.
Traitement des données.
Template des pages HTML.

ARCHITECTURE JAVASCRIPT
CLIENT
Requêtes légères.
Récupération et traitement des
données.
Rafraichissement partiel continu.
Template des pages HTML.

SERVEUR
Requêtes légères traitées en simultané
(Nodejs).
Gestion des données.
 

OK, ALORS LEQUEL FAUT-IL
CHOISIR ?
Si le framework Node.js est incontournable pour la partie serveur, il existe une
multitude de frameworks qui a été développée pour la partie client. Il y a fort à parier
que l’un d’entre eux s’imposera. Aussi le choix du bon framework s’avérera
certainement déterminant pour le futur.
En dehors d’une éventuelle surprise, trois frameworks sortent du lot : Ember,
Backbone, Angular. On pourrait chercher des raisons objectives de préférer une
solution plutôt qu’une autre en étudiant les différences techniques.
Malheureusement, le succès d’une solution ne repose pas uniquement sur ses
qualités techniques. Ce succès repose plutôt sur un consensus parmi la communauté
des développeurs.
Aujourd’hui, les tendances que nous avons détectées (je ne juge pas de la rationalité
de ces avis parce que je risquerais d’avoir trop de détracteurs) sont les suivantes :

Ember.js est perçu comme très complexe et trop lourd.
Par ailleurs, la solution a eu du mal à se stabiliser.

Backbone.js a plusieurs avantages : il est simple, léger
et bien documenté. Il a les inconvénients de ses
avantages : il est parfois trop limité et pas assez
structurant.

Vous l’avez certainement déjà compris, AngularJS est le
framework qui récolte le plus de suffrage dans la
communauté des développeurs.
En plus, il est sponsorisé/développé par Google.
 
La courbe Google Trends illustre d’ailleurs bien cette tendance :
 

QU’EST-CE QUI EST BIEN AVEC
ANGULAR ?
Angular, au-delà d’apporter un design pattern MVC côté client (on parle même de
MVW, le W pour « whatever works for you »), présente de nombreuses
fonctionnalités très intéressantes :
DATA-BIDING BIDIRECTIONNEL
Un input de la page peut s’afficher dans un autre endroit de la page. Cela n’a pas
l’air dingue dit comme ça. En fait, cela simplifie considérablement la vie du
développeur (moins de code, donc moins de bug). La manipulation du DOM est
effectuée par Angular.

LES DIRECTIVES
Les directives permettent de développer des attributs et des éléments HTML
spécifique de manière à manipuler proprement le DOM (structure HTML). Bien que
ce soit une fonctionnalité un peu complexe à maîtriser surtout les scopes (il faut
savoir dès le départ, dans votre projet, qu’elles sont les directives et les contrôleurs)
cela rend votre application très modulaire. Il devient très simple d’ajouter ou de
modifier des composants. Ces directives permettent de définir des attributs (une liste
particulière avec une image par exemple) ou de piloter des comportements (un
événement par exemple).
Ce qui nous fait penser qu’Angular va exploser : les directives peuvent se partager.
Vous pouvez donc utiliser une directive en ajoutant le fichier à votre projet. Des
bibliothèques comme Angular UI angularisent des librairies populaires comme
JQuery UI et Boostrap Simplissime, non ?
Bien d’autres éléments sont à découvrir : la gestion des templates ou encore
l’injection de dépendance et les services…
 

CONCLUSION
Ce type d’architecture n’est pas forcément adapté à tous les projets. Il faut encore
que les besoins associés au projet soient en adéquation avec les avantages de ces
solutions : vitesse d’exécution, composants HTML hautement réutilisables…
Le principal frein à l’utilisation de ces solutions est le référencement. Cette
technologie ne permet pas aux moteurs de recherche d’indexer les sites reposant
sur cette technologie. Ce sujet devrait bouger. Google fait (paraît-il) des gros efforts
dans ce domaine et cela semble plutôt logique puisqu’il porte le projet.
L’avenir des architectures web va dans le sens des Web Components. C’est-à-dire
des composants HTML modulaires et réutilisables. Angular, avec les Directives, est le
premier framework diffusé largement qui va dans ce sens. Donc, à moins qu’un
nouveau langage n’apparaisse dans le paysage comme Dart par exemple, le futur
s’écrit en JavaScript. Cependant, à l’heure même où j’écris ces lignes, le 5 novembre
2013, Angular annonce la sortie d’AngularDart. Une drôle de coïncidence ?

www.thecodingmachine.com
Tél : 01 71 18 39 73
contact@thecodingmachine.com
4, rue de la Michodière – 75002 PARIS

Weitere ähnliche Inhalte

Was ist angesagt?

Responsive design, Canvas et SVG
Responsive design, Canvas et SVGResponsive design, Canvas et SVG
Responsive design, Canvas et SVGChristian SUMBANG
 
Tech days 2012 mvvm de a à z
Tech days 2012   mvvm de a à zTech days 2012   mvvm de a à z
Tech days 2012 mvvm de a à zArnaud Auroux
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido SOAT
 
Angluars js
Angluars jsAngluars js
Angluars jsRYMAA
 
Google : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSGoogle : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSPeak Ace
 
Faut-il maîtriser son code HTML ? @ Paris-Web 2009
Faut-il maîtriser son code HTML ? @ Paris-Web 2009Faut-il maîtriser son code HTML ? @ Paris-Web 2009
Faut-il maîtriser son code HTML ? @ Paris-Web 2009Mickaël Morier
 
Vous n'avez pas besoin de ça
Vous n'avez pas besoin de çaVous n'avez pas besoin de ça
Vous n'avez pas besoin de çaCharles Desneuf
 
Créer des jeux 3D pour le web et pour le Windows Store avec BabylonJS/WebGL
Créer des jeux 3D pour le web et pour le Windows Store avec BabylonJS/WebGL Créer des jeux 3D pour le web et pour le Windows Store avec BabylonJS/WebGL
Créer des jeux 3D pour le web et pour le Windows Store avec BabylonJS/WebGL Microsoft
 
Agile Sans Frontières
Agile Sans FrontièresAgile Sans Frontières
Agile Sans FrontièresCARA_Lyon
 
Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10davrous
 
Comparatif des frameworks js mv
Comparatif des frameworks js mvComparatif des frameworks js mv
Comparatif des frameworks js mvMael Monnier
 
AngularJS - Présentation (french)
AngularJS - Présentation (french)AngularJS - Présentation (french)
AngularJS - Présentation (french)Yacine Rezgui
 
Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5davrous
 
L'architecture MVVM avec KnockoutJS
L'architecture MVVM avec KnockoutJSL'architecture MVVM avec KnockoutJS
L'architecture MVVM avec KnockoutJSDavid Bottiau
 

Was ist angesagt? (20)

Responsive design, Canvas et SVG
Responsive design, Canvas et SVGResponsive design, Canvas et SVG
Responsive design, Canvas et SVG
 
Tech days 2012 mvvm de a à z
Tech days 2012   mvvm de a à zTech days 2012   mvvm de a à z
Tech days 2012 mvvm de a à z
 
Retour d'experience projet AngularJS
Retour d'experience projet AngularJSRetour d'experience projet AngularJS
Retour d'experience projet AngularJS
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido
 
jQuery vs AngularJS
jQuery vs AngularJS jQuery vs AngularJS
jQuery vs AngularJS
 
Prismic
PrismicPrismic
Prismic
 
Angluars js
Angluars jsAngluars js
Angluars js
 
Cv2015
Cv2015Cv2015
Cv2015
 
Google : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSGoogle : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JS
 
AngularJS
AngularJSAngularJS
AngularJS
 
Faut-il maîtriser son code HTML ? @ Paris-Web 2009
Faut-il maîtriser son code HTML ? @ Paris-Web 2009Faut-il maîtriser son code HTML ? @ Paris-Web 2009
Faut-il maîtriser son code HTML ? @ Paris-Web 2009
 
Java Server Faces - Beyond
Java Server Faces - BeyondJava Server Faces - Beyond
Java Server Faces - Beyond
 
Vous n'avez pas besoin de ça
Vous n'avez pas besoin de çaVous n'avez pas besoin de ça
Vous n'avez pas besoin de ça
 
Créer des jeux 3D pour le web et pour le Windows Store avec BabylonJS/WebGL
Créer des jeux 3D pour le web et pour le Windows Store avec BabylonJS/WebGL Créer des jeux 3D pour le web et pour le Windows Store avec BabylonJS/WebGL
Créer des jeux 3D pour le web et pour le Windows Store avec BabylonJS/WebGL
 
Agile Sans Frontières
Agile Sans FrontièresAgile Sans Frontières
Agile Sans Frontières
 
Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10
 
Comparatif des frameworks js mv
Comparatif des frameworks js mvComparatif des frameworks js mv
Comparatif des frameworks js mv
 
AngularJS - Présentation (french)
AngularJS - Présentation (french)AngularJS - Présentation (french)
AngularJS - Présentation (french)
 
Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5
 
L'architecture MVVM avec KnockoutJS
L'architecture MVVM avec KnockoutJSL'architecture MVVM avec KnockoutJS
L'architecture MVVM avec KnockoutJS
 

Ähnlich wie Framework JavaScript Web - Brief techno

Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdfimenhamada17
 
Calculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System SARL
 
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...Microsoft Technet France
 
Les nouveaux challenges techniques pour le SEO
Les nouveaux challenges techniques pour le SEOLes nouveaux challenges techniques pour le SEO
Les nouveaux challenges techniques pour le SEOGroupe Neper
 
Calculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System SARL
 
developpement web framework cms developpement brute
developpement web framework cms developpement brutedeveloppement web framework cms developpement brute
developpement web framework cms developpement bruteYounesOuladSayad1
 
CV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALCV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALYoussouph Barry
 
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...Michaël Figuière
 
Méthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketMéthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketmichael_bailly
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Webdesign sites web et mobiles-tendances 2015
Webdesign sites web et mobiles-tendances 2015Webdesign sites web et mobiles-tendances 2015
Webdesign sites web et mobiles-tendances 2015Olivier Dommange
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologiewyggio
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
PRESENTATION_webclient.pptx
PRESENTATION_webclient.pptxPRESENTATION_webclient.pptx
PRESENTATION_webclient.pptxAleskaVargas2
 

Ähnlich wie Framework JavaScript Web - Brief techno (20)

Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdf
 
Calculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stack
 
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...
Architecture, bonnes pratiques et recettes pour la réussite de vos projets av...
 
Les nouveaux challenges techniques pour le SEO
Les nouveaux challenges techniques pour le SEOLes nouveaux challenges techniques pour le SEO
Les nouveaux challenges techniques pour le SEO
 
Calculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stack
 
developpement web framework cms developpement brute
developpement web framework cms developpement brutedeveloppement web framework cms developpement brute
developpement web framework cms developpement brute
 
CV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALCV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPAL
 
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
 
Méthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketMéthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to market
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Livre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JSLivre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JS
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Webdesign sites web et mobiles-tendances 2015
Webdesign sites web et mobiles-tendances 2015Webdesign sites web et mobiles-tendances 2015
Webdesign sites web et mobiles-tendances 2015
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
 
HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologie
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
PRESENTATION_webclient.pptx
PRESENTATION_webclient.pptxPRESENTATION_webclient.pptx
PRESENTATION_webclient.pptx
 

Mehr von JEAN-GUILLAUME DUJARDIN (15)

PHP, the GraphQL ecosystem and GraphQLite
PHP, the GraphQL ecosystem and GraphQLitePHP, the GraphQL ecosystem and GraphQLite
PHP, the GraphQL ecosystem and GraphQLite
 
Do you speak technique ?
Do you speak technique ?Do you speak technique ?
Do you speak technique ?
 
Methode Agile
Methode Agile Methode Agile
Methode Agile
 
Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
 
Conception d'un Extranet
Conception d'un ExtranetConception d'un Extranet
Conception d'un Extranet
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
Modèle cahier des charges site web
Modèle cahier des charges site webModèle cahier des charges site web
Modèle cahier des charges site web
 
Gérer un pic d'audience
Gérer un pic d'audienceGérer un pic d'audience
Gérer un pic d'audience
 
3 piliers d'un bon référencement web
3 piliers d'un bon référencement web3 piliers d'un bon référencement web
3 piliers d'un bon référencement web
 
Brief Nouveaux outils collaboratifs
Brief Nouveaux outils collaboratifsBrief Nouveaux outils collaboratifs
Brief Nouveaux outils collaboratifs
 
Livre Blanc Sauvetage de projets
Livre Blanc Sauvetage de projetsLivre Blanc Sauvetage de projets
Livre Blanc Sauvetage de projets
 
Intranet 2.0
Intranet 2.0Intranet 2.0
Intranet 2.0
 
Hec Web Marketing
Hec Web MarketingHec Web Marketing
Hec Web Marketing
 
Livre blanc améliorez les performances de vos projets web - v1.1
Livre blanc   améliorez les performances de vos projets web - v1.1Livre blanc   améliorez les performances de vos projets web - v1.1
Livre blanc améliorez les performances de vos projets web - v1.1
 
TCM - Livre blanc sur les plateformes communautaires Open Source
TCM - Livre blanc sur les plateformes communautaires Open SourceTCM - Livre blanc sur les plateformes communautaires Open Source
TCM - Livre blanc sur les plateformes communautaires Open Source
 

Framework JavaScript Web - Brief techno

  • 1. L’AVENIR DU WEB S’ÉCRIT-IL EN JAVASCRIPT ? Auteur : Jean-Guillaume Dujardin / Pierre Vaidie Novembre 2013 JavaScript était déjà bien installé sur nos navigateurs. Il est depuis passé côté serveur (avec Node.js). Et maintenant, il se structure côté client. Des frameworks JavaScript émergent…
  • 2.   BIBLIOTHEQUE OU BIEN FRAMEWORK, QUELLE DIFFERENCE ? Vous-vous dites : « Pour le JavaScript, pas besoin de me casser la tête, on a déjà JQuery, c’est bien suffisant ». C’est vrai, JQuery est devenu presque universel. C’est la bibliothèque la plus utilisée. Mais cela reste une bibliothèque. Les Frameworks sont différents des bibliothèques car ils guident l’architecture logicielle. Schématiquement, on a le principe suivant : En fait, ces frameworks sont nécessaires à de nouvelles architectures…
  • 3.   QUOI, UN NOUVEAU TYPE D’ARCHITECTURE ? On dirait que les technologies sont un éternel recommencement… On pensait avoir trouvé une architecture universelle : un navigateur, un serveur PHP, des bases de données MYSQL. Patatra ! Parfois, ce type d’architecture ne suffit plus : l’ergonomie des sites devient de plus en plus complexe, la vitesse d’exécution de l’affichage et des traitements est de plus en plus importante (il n’y a qu’à voir les études faites par Google ou Amazon sur la corrélation entre le taux de transformation et les performances), les clients qui se connectent sont de plus en plus différents (mobiles, tablettes), le big data ou bien encore la montée en charge des applications nécessitent de gérer d’énormes quantités de données. Ainsi, le client doit à nouveau prendre en charge une partie croissante des traitements, comme au bon vieux temps des architectures « client lourd ». ARCHITECTURE CLASSIQUE CLIENT Requêtes lourdes. Affichage des pages HTML complètes. SERVEUR Requêtes traitées au fur et à mesure. Traitement des données. Template des pages HTML. ARCHITECTURE JAVASCRIPT CLIENT Requêtes légères. Récupération et traitement des données. Rafraichissement partiel continu. Template des pages HTML. SERVEUR Requêtes légères traitées en simultané (Nodejs). Gestion des données.
  • 4.   OK, ALORS LEQUEL FAUT-IL CHOISIR ? Si le framework Node.js est incontournable pour la partie serveur, il existe une multitude de frameworks qui a été développée pour la partie client. Il y a fort à parier que l’un d’entre eux s’imposera. Aussi le choix du bon framework s’avérera certainement déterminant pour le futur. En dehors d’une éventuelle surprise, trois frameworks sortent du lot : Ember, Backbone, Angular. On pourrait chercher des raisons objectives de préférer une solution plutôt qu’une autre en étudiant les différences techniques. Malheureusement, le succès d’une solution ne repose pas uniquement sur ses qualités techniques. Ce succès repose plutôt sur un consensus parmi la communauté des développeurs. Aujourd’hui, les tendances que nous avons détectées (je ne juge pas de la rationalité de ces avis parce que je risquerais d’avoir trop de détracteurs) sont les suivantes : Ember.js est perçu comme très complexe et trop lourd. Par ailleurs, la solution a eu du mal à se stabiliser. Backbone.js a plusieurs avantages : il est simple, léger et bien documenté. Il a les inconvénients de ses avantages : il est parfois trop limité et pas assez structurant. Vous l’avez certainement déjà compris, AngularJS est le framework qui récolte le plus de suffrage dans la communauté des développeurs. En plus, il est sponsorisé/développé par Google.
  • 5.   La courbe Google Trends illustre d’ailleurs bien cette tendance :
  • 6.   QU’EST-CE QUI EST BIEN AVEC ANGULAR ? Angular, au-delà d’apporter un design pattern MVC côté client (on parle même de MVW, le W pour « whatever works for you »), présente de nombreuses fonctionnalités très intéressantes : DATA-BIDING BIDIRECTIONNEL Un input de la page peut s’afficher dans un autre endroit de la page. Cela n’a pas l’air dingue dit comme ça. En fait, cela simplifie considérablement la vie du développeur (moins de code, donc moins de bug). La manipulation du DOM est effectuée par Angular. LES DIRECTIVES Les directives permettent de développer des attributs et des éléments HTML spécifique de manière à manipuler proprement le DOM (structure HTML). Bien que ce soit une fonctionnalité un peu complexe à maîtriser surtout les scopes (il faut savoir dès le départ, dans votre projet, qu’elles sont les directives et les contrôleurs) cela rend votre application très modulaire. Il devient très simple d’ajouter ou de modifier des composants. Ces directives permettent de définir des attributs (une liste particulière avec une image par exemple) ou de piloter des comportements (un événement par exemple). Ce qui nous fait penser qu’Angular va exploser : les directives peuvent se partager. Vous pouvez donc utiliser une directive en ajoutant le fichier à votre projet. Des bibliothèques comme Angular UI angularisent des librairies populaires comme JQuery UI et Boostrap Simplissime, non ? Bien d’autres éléments sont à découvrir : la gestion des templates ou encore l’injection de dépendance et les services…
  • 7.   CONCLUSION Ce type d’architecture n’est pas forcément adapté à tous les projets. Il faut encore que les besoins associés au projet soient en adéquation avec les avantages de ces solutions : vitesse d’exécution, composants HTML hautement réutilisables… Le principal frein à l’utilisation de ces solutions est le référencement. Cette technologie ne permet pas aux moteurs de recherche d’indexer les sites reposant sur cette technologie. Ce sujet devrait bouger. Google fait (paraît-il) des gros efforts dans ce domaine et cela semble plutôt logique puisqu’il porte le projet. L’avenir des architectures web va dans le sens des Web Components. C’est-à-dire des composants HTML modulaires et réutilisables. Angular, avec les Directives, est le premier framework diffusé largement qui va dans ce sens. Donc, à moins qu’un nouveau langage n’apparaisse dans le paysage comme Dart par exemple, le futur s’écrit en JavaScript. Cependant, à l’heure même où j’écris ces lignes, le 5 novembre 2013, Angular annonce la sortie d’AngularDart. Une drôle de coïncidence ? www.thecodingmachine.com Tél : 01 71 18 39 73 contact@thecodingmachine.com 4, rue de la Michodière – 75002 PARIS