J'ai utilisé cette technique exclusivement pour une application Web sur laquelle nous travaillons. Mon backend est hébergé sur Google App Engine à l'aide du SDK Java et mon interface utilise HTML, CSS et JavaScript (avec jQuery).
Le projet est plus petit avec juste moi et un concepteur Web, et nous pensons tous les deux que cette méthode nous a permis de travailler beaucoup plus rapidement et d’obtenir quelque chose sur le marché beaucoup plus tôt.
Avantage: travailler avec des concepteurs Web
L’avantage majeur de cette technique est que le concepteur Web, qui connaît PHP, mais ne se considère pas comme un programmeur, peut travailler sans encombrement dans les langages HTML et CSS sans avoir à parcourir d’innombrables lignes de fichiers JSP, balises taglib et autres éléments côté serveur. Le balisage dont on nous dit depuis des années est censé faciliter grandement la vie des développeurs front-end.
Sans tout le balisage côté serveur, nous avons été plus agiles. Le concepteur de site Web a échangé et révisé directement son dessin original 3 ou 4 fois, avec très peu de modifications de ma part.
Il m'a dit qu'il avait l'impression que le code HTML était vivant, qu'il pouvait le modifier et voir immédiatement les modifications sur sa machine avec des données dynamiques. Nous bénéficions tous les deux de ce fait en ce que l'intégration est généralement automatique.
Code côté serveur et transferts HTML / CSS
Dans des projets antérieurs, il devait transférer le code HTML et CSS aux développeurs Java, qui devaient ensuite reprendre ses codes HTML et CSS et le réécrire complètement à l'aide de la technologie JSP. Cela prendrait beaucoup de temps et entraînerait généralement des différences subtiles mais importantes dans le rendu réel des pages ainsi que dans la validation de celui-ci par le validateur W3C.
Globalement, nous sommes tous les deux très satisfaits de cette technique, et j’ai toujours zéro page JSP ou code côté serveur dans mes pages HTML.
Pièges de la technique REST / JSON
Les pièges les plus importants sont peut-être ceux que nous n'avons pas encore rencontrés. Je m'attends vraiment à avoir des désaccords avec des développeurs Java plus expérimentés qui ont subi un lavage de cerveau par ce que la fondation Apache et l'équipe Spring leur ont dit sur la façon dont les bibliothèques de balises facilitent le travail avec les développeurs front-end. Je m'attends vraiment à ce qu'il y ait une phase d'apprentissage à mesure que le projet se développe et que nous recrutons davantage de développeurs qui pourraient devoir désapprendre ces techniques obsolètes qui, selon mon expérience, ont rendu le travail des concepteurs Web plus difficile .
Un autre piège est que le code JavaScript est devenu très massif. C'est plus un problème peut-être parce que j'utilise cette technique pour la première fois, et parce que nous avons contracté une légère dette technique en vue d'une libération rapide. Peut-être que choisir un meilleur cadre aurait permis d’alléger une grande partie du code. À mon avis, rien de tout cela n'a été un coup dur, et je suis encouragé à continuer à utiliser cette technique et à affiner mes compétences dans ce domaine.
Avantage: d'autres applications peuvent être construites sur la plate-forme
Enfin, je devrais mentionner un avantage caché. Comme il existe un bon degré de séparation entre mes services Web RESTful d’arrière-plan et mon interface, j’ai également créé une plate-forme que je peux facilement étendre.
Un de nos responsables des opérations a voulu essayer une preuve de concept dans une autre application et, grâce à mes services RESTful, nous avons pu créer une interface totalement différente de l'application afin de résoudre un problème complètement différent. La preuve de concept rapidement développée utilisait ses propres HTML, CSS et JavaScript, mais elle utilisait les services RESTful comme back-end et source de données.
En fin de compte, un autre chef de projet a constaté ce que j'avais fait et il est immédiatement devenu évident que la fonctionnalité devait être davantage qu'une simple démonstration de concept. Son équipe l'a donc mise en œuvre.
Je ne saurais trop insister sur le fait que cette architecture est réutilisable, tant au niveau de l'application que du niveau HTML / CSS / JavaScript, et je vous encourage vivement à l'essayer dans votre prochain projet.