Votre retour d'expérience d'AngularJS du point de vue de la maintenabilité quand les applications grandissent
Bonjour,
AngularJS a eu ces deux dernières années la faveur des développeurs. J'en ai lu beaucoup de bien, et il semble simplifier un grand nombre de choses.
Dans l'absolu, il me suffirait de m'y ruer.
Mais voilà, je suis plus que sur mes gardes à chaque annonce d'un truc merveilleux :
GWT a été en son temps très encensé. Mais des développeurs de Google admettent maintenant qu'ils étaient certains à le trouver improductif. C'était donc ça ce sentiment diffus que j'avais en l'employant ?
Spring est absolument génial : il suffit de trouver des gens capables de tout maîtriser, et il n'y a jamais assez de maîtrise et de compréhension de ses standards aux yeux de ses adeptes. Mais ce qu'il est important de retenir, c'est qu'il n'y a que des bonnes idées dedans. Et ça, il ne faut jamais oublier de le dire, même pour Spring MVC. Spring est très simple à configurer : d'ailleurs, une bonne partie de l'apprentissage, c'est apprendre à le configurer...
La méthode Agile décuple l'efficacité de tous : elle permet aussi de faire du théâtre avec des chorégraphies et des postures, et force déclamations de son agrément et de son plaisir d'y être intégré.
Java 8 et les Lambdas sont révolutionnaires : c'est évident qu'ils feront tout ; les lambdas c'est sympa. Et il n'y a pas d'abus...
Bon voilà pour le placardage. J'ai une vingtaine d'années de programmation derrière moi maintenant, et dès que quelque chose est génial je n'ai qu'une question :
Deux ans après son apparition,
qu'en est-il de la maintenabilité des applications produites avec ?
Une vaste application avec AngularJS montre quels bénéfices et quelles limites ?
Quelles sont les mauvaises pratiques éventuelles que l'on y a vues naître, les pièges (voire les affres) que l'on rencontre en l'employant ?
Une entreprise qui va migrer tout son GWT ou JSF ou Struts en AngularJS ou développer une grande application avec des quantités et des quantités de code AngularJS va devoir faire particulièrement attention à quoi ?
Pourquoi l'annonce de l'arrivée de la deuxième version d'AngularJS a-t-elle tellement troublé ? Quel impact général va-t-elle avoir ? Est-ce grave ? Struts 2 en son temps avait prétendu remplacer Struts 1 et n'avait réussi qu'à faire fuir tout le monde...
Quels sont les atouts aussi d'AngularJS, qui ont vraiment permis d'éliminer des sources d'erreur qui existaient auparavant ?
Merci de votre retour d'expérience.
Avis et retour d'expérience en tant que noob
Bonjour,
Je viens de découvrir Angular, et j'avoue que j'ai trouvé enfin une vraie motivation pour faire du JS (que je hais par ailleurs :oops: honte à moi).
Il faut dire que JSF/EJB/JPA ou Symfony sont mes amis, le background explique l'avis sur Javascript.
En fait je retrouve dans Angular tout ce que je souhaitais :
- Architecture d'une appli façon MVC
- cadre de travail
- gain de temps ...
Il faut un temps certain, pour tout assimiler, mais c'est comme tout "Framework".
je partage l'avis sur AngularJs tout frontend, en effet, j'ai choisi cette techno pour une appli Cordova (donc application mobile) avec
Serveur REST Tomcat EE. et la séparation backend frontend est enfin magique. ce qui a eu tendance à m'agacer en Symfony.
Ce petit retour d'expérience me fait envisager différemment mes prochaines applis web. Si angular migre en 2.0 je n'aurais
que la partie front à repenser, pas la partie métier "enfin" un vrai investissement.
Pour le tests même philosophie, la séparation des couches me semble bien plus intéressante.
Le vrai plus, c'est ce côté MVC en Javascript, je ne suis guère à l'aise avec du code "spaghetti", en terme de maintenance
cela à un coût non négligeable, et je sais de quoi je parle, je l'ai pratiqué, je l'ai subit.
J'attends un peu de temps pour la future version, je sais que cela va me coûter encore du temps,
mais les retours sur investissements sont importants.:P
Olivier
Licences, mobile, perf, archi
Bonjour,
sans juger du framework lui-même que j'ai trop peu utilisé, voici quelques axes pour juger les retours, qu'on oublie souvent :
1. ARCHITECTURE
La mode en archi est désormais au client riche et aux API JSON. C'est devenu possible :
- par les frameworks front (Backbone, Ember -- j'ai entendu plus de gens heureux sur ces deux-là que sur Angular d'ailleurs),
- par les frameworks back (Rails, Django, Phoenix...) et la "standardisation" du JSON
- par la variété des terminaux et donc la mode revient au "client riche + API"
2. PERF
Je vois deux sortes de présentations sur Angular :
- celles qui montrent le côté magique (le marketing)
- celles qui montrent les soucis de perf et les astuces (les REX -- retour d'expérience)
La vérité est forcément entre les deux : une productivité accrue mais toujours besoin d'astuces et d'expertise (logique, ça ne me choque pas).
La question est donc : pour combien de temps et avec quelle dette technique ?
Difficile de dire et comme le demande le post de départ : où sont les vraies données ?
3. MOBILE
Le mobile ! C'est la clé du problème. Allez-vous faire une app mobile ? Pour quel(s) OS ?
Personnellement vu les soucis de perf remontés, je n'ai pas très envie (mais ça passerait) pour l'instant du Angular sur mobile.
Je ferais plus volontiers une appli native... mais alors il faudra un effort significatif pour avoir du IOS, Android et peut-être d'autres.
Par contre, la tablette (qu'on imagine plus puissante) pas de souci pour faire du web, et la smart watch je verrais quelque chose de plus léger.
Plus le temps passe, plus j'aime le "low tech" : un minimum d'HTML propre que tous les terminaux peuvent lire facilement, ça vous permet :
- l'usage standard sur desktop et tablette... mais bien plus rapidement que vos concurrents :D
- l'évolution, les compétences, les équipes... qui savent et maîtrisent ce qu'elles font
- l'usage web sur mobile correct, "anciens mobiles" décent, et même smart watch si c'est très léger
En bonus :
- ça marche aussi pour les robots / crawlers (et le SEO associé)
- ça marche aussi sur les screen-readers (accessibilité)
Bref, je ne suis pas contre la nouveauté et l'innovation bien au contraire, mais au moins :
- tout ce qui est un peu trop malin est sur le serveur, que vous maîtrisez
- tout ce que vous ne maîtrisez pas (le monde extérieur et le mode de consultation) n'a que peu de prérequis
Oui, pour l'instant et depuis que je fais du web, je suis plutôt pour l'intelligence sur le serveur :)
C'est un adage courant dans le monde du code, d'être libéral dans ce qu'on accepte et strict dans ce qu'on renvoie !
4. LA LICENCE, le point bonus qui n'a rien (?) à voir avec Angular.
Pour Sencha et ExtJS, j'avais fait quelque chose de solide dessus mais le "dual-licensing" sentait le sapin depuis 2009, voire 2008...
Ça ne me surprend pas et je suis content de ne pas avoir misé dessus.
Au fait, si Google décide unilatéralement de passer à Angular 3.0 au lieu de Angular 2.0, vous faites comment ?
KYC (Know Your Customer) mais... surveillez vos outils !