Passer de Symfony à du full JS pour une grosse app ?

a marqué ce sujet comme résolu.

Bonjour,

j’ai toujours utilisé Symfony avec du vanilla JS (des petits scripts combinés à SymfonyUX ou parfois du vieux JQuery) pour mes applications web. Récemment, j’ai décidé de me mettre à TypeScript et j’ai découvert pas mal de features modernes (classes, async/promise, arrow functions, etc.) de JS qui me font plutôt apprécié le langage pour son aspect fonctionnel/asynchrone. Je me suis lancé dans Svelte, un framework très sympa et facile d’utilisation, beaucoup plus pratique que du JS pur mais pas aussi compliqué qu’Angular ou React.

Je vais être sur un gros projet dans pas longtemps, quelque chose qu’il faudra maintenir et faire évoluer sur le (très) long terme avec possiblement pas mal de fonctionnalités qui vont se rajouter au fur et à mesure du temps (gestion de compta, paiement en crypto, etc.).

Comme je vais avoir pas mal de temps pour me pencher sur cette app, j’aimerais passer de PHP à du full JS. J’ai regardé la doc Node.js mais ça me paraît un peu trop de bas niveau et cela semble un peu trop nécessité de réinventer la roue. Du coup je me suis penché sur des framework Node.js et NestJS à vraiment capté mon attention.

Mais du coup la question que je me pose c’est est-ce que NestJS + Svelte (avec probablement PostgreSQL/Redis) est judicieux pour ce genre d’app ? Je n’ai jamais autant touché à du JS et si certains d’entre-vous ont de l’expérience en full JS alors je suis intéressé pour vos retours.

Merci.

+0 -0

Hello,

Pour être récemment arrivé dans un projet Nest après avoir fait du PHP (CodeIgniter puis Laravel) et du Node (Loopback & Express "pur")… j’ai l’impression que Nest est lourd à utiliser.

J’ai l’impression d’avoir la complexité d’un outil somme Symfony, mais en JS.

Ça fonctionne très bien, c’est pas le souci, mais comparé à Laravel par exemple je trouve qu’il faut faire une certaine dose de code en plus car l’approche est différente.
On utilise des DTO au lieu de validateurs par exemple : c’est plus orienté code que description, donc plus évolutif, mais ça fait un peu plus de code.

Mais pour répondre à ta question je pense que ça peut remplacer du Symfony… faut juste voir si tu as besoin de Node.js au lieu de PHP.

Nous on l’utilise pour des WebSockets, ce qui n’est pas le fort de PHP par exemple. As-tu ce genre de besoin ?

La techno front n’aura pas vraiment d’impact sur ton back en général. Par contre plus tu fais de calculs côté front plus il faudra des machines puissante côté client pour utiliser ton outil. Si c’est pour du contenu quasi statique ça vaut peut-être pas la peine de déporter la génération du HTML/DOM…

Merci pour ta réponse @viki53 !

Il faut d’abord que j’attende les retours de mon employeur afin d’avoir un descriptif plus complet/conçis de l’application et en saisir les besoins. Donc je ne sais pas trop si j’aurais plus l’utilité de Node.js au lieu de PHP, en fait. Pas sûr d’avoir besoin des WebSockets par exemple, il faut que je réfléchisse. :)

Je me posais juste la question de m’émanciper de PHP, avant tout. Mais c’est peut être pas nécessaire en fait.

Côté front il faut voir. Ce qui intéresse mon employeur c’est la fluidité/rapidité avant tout. Il pensais à une SPA pour tablettes/mobiles. SvelteKit permet ça il me semble. Mais je sais pas si c’est le framework le plus adapté. J’entends dire qu’il est très léger et rapide.

+0 -0

SvelteKit, ça fait 5 ans qu’ils n’ont pas atteint la version 1.0 …

Je n’ai jamais vraiment testé car je n’ai jamais eu confiance. Mais Svelte par contre, ça roxe de fou 👍. J’imagine que SvelteKit est mieux construit que Sapper (l’ancien SvelteKit, celui en qui je n’avais pas confiance), mais j’attendrais, personnellement, la version 1 avant de l’utiliser.

Mais attention, Svelte, c’est sur rendu coté client. Sapper (et donc j’imagine maintenant SvelteKit) c’est du rendu coté serveur.

Edit: Oh ! Il semble que SvelteKit permette de faire un peu tout pas seulement du SSR.

+0 -0

Alors justement @ache, je me posais la question, faut-il vraiment passer par un framework du type Next pour faire une SPA ? Un router bricolé avec AJAX ne suffit-il pas ?

Je suis très old school, c’est aussi l’une des raisons pour laquelle je veux moderniser mon stack. :-°

+0 -0

Alors là. Passer par un framework va beaucoup t’aider.

C’est possible avec un truc bricolé et un peu d’Ajax mais vraiment Svelte fera ça tellement mieux. VueJS également.

Et au final, je ne pense pas que Svelte soit beaucoup plus lourd.

+0 -0

Si tu n’as pas beaucoup de logique côté client tu peux toujours tenter avec des WebComponents natifs, en ajoutant un router par-dessus.

Mais comme dit @ache, si ton app grossit ça peut vite devenir lourd à gérer et c’est là qu’un framework va t’aider à éliminer du code au final "standard".

Tu peux donc commencer par un framework "light" comme Svelte pour te faire la main tranquillement (en jetant quand même un œil à ce qui se passe sous le capot avec les WebComponents).

Si tu n’as pas beaucoup de logique côté client tu peux toujours tenter avec des WebComponents natifs, en ajoutant un router par-dessus.

Mais comme dit @ache, si ton app grossit ça peut vite devenir lourd à gérer et c’est là qu’un framework va t’aider à éliminer du code au final "standard".

Tu peux donc commencer par un framework "light" comme Svelte pour te faire la main tranquillement (en jetant quand même un œil à ce qui se passe sous le capot avec les WebComponents).

viki53

C’est grâce à ton tutoriel que j’ai décidé de me mettre plus sérieusement à JS, il y a quelques mois de cela. Mes remerciements. :D

Sinon, côté front, je pense que je vais jeter un oeil à Vue.js, histoire de le comparer un peu à Svelte et continuer à me faire la main.

En ce qui concerne le back… Disons que je me suis pas mal habitué à Symfony et peut être que ça faciliterait les choses si je ne change pas trop les habitudes qui gagnent. Si il n’y a vraiment pas d’intérêt à faire du full Node.js, j’ai pas envie de me retrouver sous la pression d’un outil que je ne maîtrise pas (même si NestJS me paraît plutôt facile d’accès).

+0 -0

Dans ce cas tant que tu peux utiliser un outil avec lequel tu es à l’aise et qu’il est robuste (et maintenu/sécurisé) je ne vois pas l’intérêt de changer.

Symfony est maintenu et sécurisé il me semble. Bah oui vu qu’ils viennent de sortir la version 6. :D

La hype c’est bien, mais ça résout pas les problèmes.

En fait j’aime bien PHP mais je rêve dans transpiler dans le genre de TypeScript, mais pour le langage PHP. Avec, dans l’idéal, des librairies intégrées pour faire de l’asynchrone, du routing etc. "nativement".

D’ailleurs c’était un de mes projets de faire un transpiler dans ce genre, en Go. Mais c’est énormément de travail pour faire un truc propre et performant. Quasiment impossible pour quelqu’un seul. Mais l’idée est pas conne.

+0 -0

Je ne savais pas pour TypeScript. J’avais dans l’idée qu’il s’agissait d’un langage à part qui était traduit en JavaScript. C’est précisément l’idée que j’avais pour PHP : un langage qui est transpilé vers du PHP natif, qui peut donc être exécuté côté serveur.

Et il semblerait que "mon" idée soit plus ou moins déjà prise.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte