AngularJS

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
L'article doit être débarrassé d'une partie de son jargon (indiquez la date de pose grâce au paramètre date).

Sa qualité peut être largement améliorée en utilisant un vocabulaire plus directement compréhensible. Discutez des points à améliorer en page de discussion.

image illustrant l’informatique
Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

AngularJS
Logo

Développeur Google et la communauté AngularJS.
Première version 2009 (2009)
Dernière version 2.0 ()
Écrit en JavaScript
Type Framework JavaScript
Licence Licence MIT
Site web angularjs.org

AngularJS[1] est un framework JavaScript libre et open-source[2] développé par Google.

AngularJS est fondé sur l’extension du langage HTML par de nouvelles balises (tags) et attributs pour aboutir à une définition déclarative des pages web, par opposition à l’utilisation systématique de l’élément div​ et à la définition des éléments de présentation en javascript.

Le code HTML étendu représente alors la partie « vue » du patron de conception MVC (modèle-vue-contrôleur) auquel AngularJS adhère, avec des modèles appelés « scopes » et des contrôleurs permettant de définir des actions en code javascript impératif. AngularJS utilise une boucle de dirty-checking (qui consiste à surveiller et à détecter des modifications sur un objet JavaScript) pour réaliser un data-binding bidirectionnel permettant la synchronisation automatique des modèles et des vues.

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

Outre le patron logiciel MVC et le code HTML étendu déclaratif, AngularJS est fondé sur un certain nombre de patrons et principes de conception qu’il convient de relever :

  • séparation des préoccupations avec le découplage des manipulations du DOM et de la logique métier ;
  • injection de dépendances ;
  • promises, reprises du langage Q.

Philosophie de 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 utilisateur et les composants logiciels de câblage, tandis que la programmation impérative excelle pour exprimer la logique métier[4]. Le framework adapte et étend le HTML traditionnel pour servir le contenu dynamique de façon améliorée grâce à un data-binding bidirectionnel permettant la synchronisation automatique des modèles et des vues. En conséquence, AngularJS minore l'importance des manipulations DOM et améliore la testabilité du code.

Objectifs de conception du framework :

  • 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.

Angular suit le patron de conception logicielle Modèle-Vue-Contrôleur (MVC) et encourage le couplage faible entre la présentation, les données, et les composants métier. En utilisant 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.

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. D'où son rapide gain de popularité : la communauté est active et les mises à jour fréquentes[5].

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

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

La version 2.0, considérablement différente (ECMAScript 6 et un nouveau langage, abandon de jQuery et de nombreux concepts et prototypes), est en cours de développement depuis 2014[8] pour une première version annoncée pour le second semestre 2016[8].

Angular 2 est accessible aux développeurs Java grâce au projet Angular2Boot[9].

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

  1. (en) « AngularJS - Superheroic javascript MVW Framework » (consulté le 9 janvier 2015)
  2. Page des contributions d'AngularJS sur le site officiel d'AngularJS. Consulté le 17/07/2012
  3. FAQ du site d'AngularJS sur la FAQ du site officiel d'AngularJS. Consulté le 17/07/2012
  4. (en) « What Is Angular? » (consulté le 12 février 2013)
  5. « Introduction à AngularJS » (consulté le 9 janvier 2015)
  6. (en) « The Java Origin of AngularJS » (consulté le 9 janvier 2015)
  7. (en) « angular/angularjs GitHub » (consulté le 9 janvier 2015)
  8. a et b (en) « A sneak peek at the radically new Angular 2.0 », sur jaxenter.com,‎ (consulté le 25 novembre 2015)
  9. « Angular 2 Boot », sur lteconsulting.fr (consulté le 28 avril 2016)