Choisir entre Thymeleaf et Angular pour un nouveau projet de MVC de printemps [fermé]

je commence une nouvelle application Web de démarrage de printemps et je dois faire un choix sur la façon de mettre en œuvre front-end.

je suis très à l'aise avec le cadre de templating Thymeleaf que j'ai utilisé dans plusieurs projets, mais je suis en train d'évaluer Angular (v2) comme une alternative possible.

je suis assez nouveau aux cadres MVC côté client et je voudrais comprendre s'il y a des lignes directrices pour décider quelle option est la meilleure pour un projet web.

j'ai lu beaucoup de les messages et les tutoriels à ce sujet, mais ils semblent tous décrire des opinions personnelles ou d'être des expériences de codage...

Il y a quelques exigences de l'application que objectivement suggère d'utiliser une approche côté client au lieu d'une implémentation côté serveur?

est-il possible et efficace d'utiliser les deux technologies ensemble?

20
demandé sur davioooh 2017-06-01 10:36:40

2 réponses

en ce qui concerne votre question sur les cadres côté client par rapport à ceux côté serveur, je suis un ingénieur logiciel D'entreprise, donc je ne crée pas de logiciel commercial et ma priorité est moins sur la façon dont il regarde jolie (Un petit Bootstrap ne le truc) et plus sur la stabilité, la compatibilité du navigateur (même avec les anciens navigateurs), et de maintenabilité. Personnellement, j'évite la page unique, les applications web dynamiques parce que je trouve la base de code plus difficile à gérer dans les applications non-triviales; une grande base de code Javascript peut être un ours, à mon avis. Construire mes pages principalement du côté du serveur me fournit de meilleures capacités de débogage (Java va vous donner beaucoup d'aide de temps de compilation que vous ne recevez pas avec Javascript)) et plus facile de journalisation. J'utilise javascript (principalement jQuery) du côté du client, mais généralement mes applications web sont conçues pour se dégrader avec élégance si l'Utilisateur a désactivé javascript. Encore une fois, ce sont des applications internes, utilitaires, pour soutenir l'entreprise. Je n'ai pas le temps d'écrire toute une thèse sur le sujet et il y a beaucoup de nuances que je ne couvre pas, mais j'espère que c'est utile.

si vous avez besoin de votre application web pour agir plus comme une application mobile ou de bureau, alors une page Web dynamique application utilisant un cadre comme AngularJS est une façon d'aller.

30
répondu Erik Pearson 2017-06-02 17:10:32

le choix n'est pas d'utiliser une bibliothèque JavaScript ou Thymeleaf, ce serait une contrainte artificielle que vous avez créée, ce sont deux animaux différents. Thymeleaf est pour templating, JQuery est une bibliothèque côté client pour faire des pages dynamiques. Il serait plus logique de choisir entre des bibliothèques de type Templier ou des bibliothèques JavaScript, mais les deux peuvent aller bien ensemble.

en général, vos modèles ne devraient pas affecter votre code JavaScript, certaines personnes font des modèles leur code Javascript, mais IMHO c'est une idée terrible. Utilisez plutôt Templating pour remplacer les attributs de balise en HTML, et Javascript pour rendre votre site web dynamique avec n'importe quelle bibliothèque que vous choisissez.

Je ne suis pas sûr de ce que vous voulez dire par

approche côté client au lieu d'une implémentation côté serveur

mais ce que je vois aujourd'hui sont 2 approches différentes, la création de Microservies VS application web Monolith. Si vous développez entièrement votre site web dans Thymeleaf vous sera pas très réutilisables. Netflix, Amazon,Uber etc. tous créent des services (parfois appelés micro-services) qui sont réutilisés dans toute l'organisation via une API REST.

si vous avez seulement un site web implémenté dans Thymeleaf, il ne sera pas possible pour une autre application (think mobile) d'accéder aux services créés par votre application, alors que si vous créez une API REST pour votre application, vous pouvez continuer à réutiliser votre serveur back-end pour quand vous avez besoin de faire un l'application mobile, ou une autre application web avec des exigences similaires.

bien sûr, si vos services ne seront pas réutilisés, cela pourrait ne pas avoir d'importance pour vous et vous pourriez être très compétent pour faire les choses d'une certaine manière, bien que n'étant pas le plus réutilisable, bien sûr, nous ne sommes pas toujours en train de créer la prochaine Amazonie. Mais je crois toujours que c'est une bonne idée de suivre les meilleures pratiques, même si c'est juste pour apprendre à mieux faire les choses d'une certaine manière.

7
répondu Snickers3192 2017-06-02 01:07:06