Angular JS

Compétence
Intérêt

Angular JS le framework maintenu par des développeurs de Google offre une façon différente de concevoir une application front-end.

Il se veut homogène avec les standards (actuels et futurs) du W3C en étendant facilement le HTML pour servir du contenu dynamique.

Angular s'adapte bien aux applications temps réel (socket ou WebRTC).

La version 2 d'Angular utilisera les capacités d'ECMAScript 6 (Web components, etc) et la méthode Object.observe() d'ECMAScript 7 qui remplacera le système de data-binding actuel. Suivant un benchmark réalisé par Miško Hevery le créateur d'Angular, la méthode Object.observe() est 20 à 40 fois plus rapide que le dirty checking. Goodbye, Cruel Wrappers And Dirty Checking !

Ce framework a apporté quelques nouveautés dans ma façon de concevoir une application front-end, y compris dans les applications où je n'utilise pas Angular il y a une source d'inspiration.

Par exemple le binding et l'injection de dépendance par simple déclaration dans une fonction, c'est intuitif et clair à lire.

app.factory('myServiceFactory', myFactory);

app.controller('MyCtrl', ['$scope', 'myServiceFactory', function($scope, myService) {
  $scope.pageTitle = 'My page title';
  myService.someMethod();

  // ...
}]);

Quand est-ce que j'utilise Angular ?

Quand on me le demande

Bien qu'Angular a certaines qualités, il est lent et minifié il pèse tout de même plus de 120ko + 20ko supplémentaires en ajoutant le strict minimum (modules: sanitize, route et cookie) + le poids de l'application forcément. Pour un site qui doit être rapidement accessible sur mobile, c'est plutôt limite.

Il existe des alternatives biens plus légères ayant les mêmes qualités (voir plus).

Dans les projets nécessitant un framework solide et performant, je préfère de loin le couple React.js / Flux qui m'offre une meilleure productivité et est plus rapide à l'exécution.