Je crée une nouvelle application web d'entreprise et je souhaite atteindre:
- Utilisez les meilleures technologies de leurs domaines respectifs. Je veux un framework backend fiable avec un ORM solide. Et je veux le framework SPA (application de page unique) le plus avancé avec l'utilisation des fonctionnalités HTML et Javascript les plus récentes pour l'application frontend
- Exposer des entités back-end et des services commerciaux à utiliser à partir de différents types d'applications - par exemple, des applications Web, mobiles (Android) et éventuellement d'autres types (appareils intelligents, etc.)
Donc - pour satisfaire les deux exigences, je suis enclin à séparer complètement mon application dans les applications backend et frontend et à organiser la communication entre elles à l'aide de l'API REST (JSON). Est-ce une bonne approche?
Une telle séparation n'est pas une solution de conception évidente, car de nombreuses technologies d'application Web ont des couches de vue intégrées où l'application côté serveur contrôle plus ou moins la génération de la vue et gère partiellement les réponses de la vue (par exemple SpringMVC avec couche de vue, PHP Yii avec vue , Java JSF / Facelets enregistre complètement l'état de leurs composants sur le serveur). Ainsi, il existe de nombreuses technologies qui proposent un couplage plus fort et promettent un temps de développement plus rapide et un parcours plus standard. Donc - je dois être prudent lorsque je commence à utiliser des technologies d'une manière qui n'est pas largement utilisée.
Si je comprends bien, le frontend SPA complètement séparé découle généralement de la nécessité d'utiliser une API tierce. Mais le découplage sonore est-il si le backend et le frontend sont développés par une seule entreprise?
Mon choix de technologies est actuellement Java / Spring backend et Angular2 / Web Components / Polymer pour frontend - si j'ai le droit de le dire. Mais cela n'est pas pertinent pour cette question, car cette question concerne la conception générale et non le choix des technologies concrètes?
So - I must be cautious when starting to use technologies in manner which is not widely used.
Oui, vous devez être prudent si vous prévoyez d'utiliser un marteau pour poinçonner la soie. Ce n'est peut-être pas le bon outil.