J'essaie de comprendre le paysage des différentes approches et meilleures pratiques autour du développement de JavaScript côté client complexe.
Je ne sais pas quoi étiqueter cette classe d'application, peut-être AJAX ou RIA lourde (mais pas des plugins comme Flash / Silverlight). Je fais référence aux applications Web avec ces caractéristiques:
- Émuler une UX de bureau riche / native en JavaScript
- Contiennent la plupart / tous les comportements dans JS côté client, en utilisant le serveur comme une API de données (JSON / Html-Templates).
Cela contraste avec l'utilisation du serveur Web pour le rendu de l'interface utilisateur, produisant tout le HTML dans un modèle de rafraîchissement de page.
Quelques exemples sont:
- Google Docs / Gmail
- Mindmeister
- Pivotal Tracker
À mesure que nous progressons vers HTML5, je peux voir ce style de développement RIA, avec JavaScript lourd, devenir de plus en plus courant et nécessaire pour rivaliser.
QUESTION: Quelles sont donc les approches communes émergeant autour de la gestion de ces types de développements JS lourds?
Le code côté client, à mesure qu'une application grandit en fonctionnalités, est diaboliquement compliqué. Il y a des problèmes de mise à l'échelle d'un effort de développement sur plusieurs équipes avec JS brut (ou du moins j'entends, et je peux bien le croire).
Google a abordé le problème en créant GWT qui compile à partir d'un langage de niveau supérieur (Java) vers JS, en s'appuyant sur l'infrastructure de développement existante du langage de niveau supérieur (Eclipse, typage fort, outils de refactoring), ainsi que la compatibilité abstraite du navigateur et autres problèmes loin du développeur.
Il existe d'autres outils, comme Script # pour C #, qui font quelque chose de similaire. Tout cela place JS davantage dans le rôle d'un IL (Intermediate Language). c'est à dire. "Vous n'écrivez plus vraiment dans ce 'langage de bas niveau'."
Mais cette «compilation en JS» n'est pas la seule approche. Il n'est pas évident que GWT soit l'approche dominante ... ou le deviendra.
Que font les gens avec du JavaScript client riche? Quelques questions d'orientation:
- La plupart des magasins créent-ils JS manuellement (au-dessus de bibliothèques comme jQuery et al)?
- Ou existe-t-il de nombreuses approches différentes, sans qu'aucune meilleure pratique claire n'émerge?
- La plupart des magasins évitent-ils le développement à l'échelle RIA en faveur du modèle plus simple à développer côté serveur / redessin des pages? Si oui, cela durera-t-il?
- La compilation vers JS est-elle peut-être une tendance future émergente? Ou est-ce juste mal dirigé?
- Comment gèrent-ils la complexité et la refactorisation du JS client?
- Modularisation et répartition du travail entre les équipes?
- L'application, l'application et le test de modèles côté client comme MVC / MVP, etc.
Alors, quelles sont les tendances émergentes de notre futur lourd JavaScript et HTML5?
Merci!