AngularJS

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
AngularJS
Logo

Développeur Google et la communauté AngularJS.
Première version 2009 (2009)
Dernière version 1.6.7 ()[1]Voir et modifier les données sur Wikidata
Écrit en JavaScriptVoir et modifier les données sur Wikidata
Type Framework JavaScript
Licence Licence MIT[2]Voir et modifier les données sur Wikidata
Site web angularjs.orgVoir et modifier les données sur Wikidata

AngularJS[3] est un framework JavaScript libre et open source[4] développé par Google. Il permet de développer des pages web.

Philosophie d'Angular[modifier | modifier le code]

Architecture d'une application Angular 2 autour de ces composants de base nommés building blocks : en anglais Modules, Components, Templates, Metadata, Data binding, Directives, Services et Dependency injection.

AngularJS est fondé sur l'idée que la programmation déclarative doit être utilisée pour construire les interfaces utilisateurs et les composants logiciels de câblage, tandis que la programmation impérative excelle pour exprimer la logique métier[5]. La conception de Angular est guidée par plusieurs objectifs:

  • Découpler les manipulations du DOM de la logique métier. Cela améliore la testabilité du code ;
  • Considérer le test d'une application aussi important que l'écriture de l'application elle-même. La difficulté de la phase de test est considérablement impactée par la façon dont le code est structuré ;
  • Découpler les côtés client et serveur d'une application. Cela permet au développement logiciel des côtés client et serveur de progresser en parallèle, et permet la réutilisabilité de chacun des côtés ;
  • Guider les développeurs pendant toute la durée de la construction d'une application : de la conception de l'interface utilisateur, en passant par l'écriture de la logique métier, jusqu'au test de l'application ;
  • Rendre les tâches faciles évidentes et les tâches difficiles possibles.

Conception[modifier | modifier le code]

Une page web conçue avec AngularJS suit le patron d'architecture MVC (modèle-vue-contrôleur). Ce patron a pour avantage de proposer un couplage faible entre la présentation, les données, et les composants métier. Dans un langage web, cette séparation permet de diminuer l'importance des manipulations DOM et d'améliorer la testabilité du code.

Dans AngularJS, la partie "vue" est déclarée dans une version étendue du HTML traditionnel, qui comporte de nouvelles balises (tags) et attributs. Ce HTML étendu est utilisé pour déclarer une liaison de données bidirectionnelle entre les modèles et les vues. Ainsi, les données sont synchronisées automatiquement, et moins d'éléments ont besoin d'être définis en Javascript. Les modèles sont composés de plusieurs couches appelés « scopes ». Les contrôleurs dans AngularJS permettent de prototyper des actions en code JavaScript natif.

En proposant l'injection de dépendances, Angular apporte aux applications web côté client les services traditionnellement apportés côté serveur, comme les contrôleurs de vues. En conséquence, une bonne partie du fardeau supporté par le back-end est supprimée, ce qui conduit à des applications web beaucoup plus légères côté serveur.

Par ailleurs, AngularJS a la particularité d'utiliser des promesses (promises), reprises du langage Q. Une promesse est une opération asynchrone (elle ne bloque donc pas l'exécution du reste du programme) qui enverra son résultat final à une fonction de rappel dès que celui-ci sera connu.[6]

Fonctionnement[modifier | modifier le code]

La synchronisation automatique des données entre le modèle et la vue est permise par un mécanisme appelé dirty-checking. AngularJS exécute en permanence une boucle qui consiste à surveiller et à détecter des modifications sur un objet JavaScript.

AngularJS embarque un sous-ensemble de la bibliothèque open source jQuery appelé jQLite, mais peut aussi utiliser jQuery si elle est chargée[7].

Historique[modifier | modifier le code]

À ses débuts en 2009, AngularJS devait être un logiciel manipulant des données au format JSON (indépendamment du web). Finalement, Miško Hevery et Adam Abronsw, ses fondateurs, ont abandonné ce projet et l'ont fait basculer dans le domaine open source. Il a depuis été repris en grande partie par Google. Une communauté active et les mises à jour fréquentes[8] assurent au framework une grande popularité.

Certains notent les origines Java d'AngularJS[9].

La première version a été mise sur GitHub le 20 octobre 2010[10], la version 1.0.0 est sortie en juin 2012.

La version 2.0, considérablement différente (ECMAScript 6 et un nouveau langage, TypeScript, abandon de jQuery et de nombreux concepts et prototypes), est en cours de développement depuis 2014[11] pour une première version livrée en 2016[11],[12]. Le TypeScript remplaçant le JavaScript en tant que langage conseillé, le nom du produit est raccourci, devenant « Angular 2 »[12].

Notes et références[modifier | modifier le code]

  1. https://github.com/angular/angular.js/blob/master/CHANGELOG.md
  2. https://github.com/angular/angular.js/blob/master/LICENSE
  3. (en) « AngularJS - Superheroic javascript MVW Framework » (consulté le 9 janvier 2015).
  4. Page des contributions d'AngularJS sur le site officiel d'AngularJS. Consulté le 17 juillet 2012.
  5. (en) « What Is Angular? » (consulté le 12 février 2013).
  6. (en) « AngularJS–Part 11, Promises | Gabriel Schenker's Blog », sur lostechies.com (consulté le 23 août 2017)
  7. FAQ du site d'AngularJS sur la FAQ du site officiel d'AngularJS. Consulté le 17 juillet 2012.
  8. « Introduction à AngularJS » (consulté le 9 janvier 2015).
  9. (en) « The Java Origin of AngularJS » (consulté le 9 janvier 2015).
  10. (en) « angular/angularjs GitHub » (consulté le 9 janvier 2015).
  11. a et b (en) « A sneak peek at the radically new Angular 2.0 », sur jaxenter.com, (consulté le 25 novembre 2015).
  12. a et b (en) « Angular 2 Final Released, Adopts Semantic Versioning », sur infoq.com, (consulté le 1er octobre 2016).