Après 2 ans sur Remix, la lune de miel est terminée 💔 J'utilise Remix depuis que le framework est open-source, et j'ai fait toutes les migrations, sauf celle vers React Router 7 Et pourtant, je fais maintenant tout pour m'en éloigner J'aime la promesse du framework. Mais je me suis fait avoir par son marketing : ⏵ Tous les standards du Web ne sont pas de bonnes idées. Par exemple, FormData, c'est nul. Et je ne suis pas sur que le JSON soit moins standard, d'ailleurs ⏵ Une gestion catastrophique des erreurs. Impossible de configurer du retry, des erreurs réseaux qui déclenchent des ErrorBoundary (n'est-ce pas Virgile RIETSCH) ⏵ Avec une approche aussi aggressive de la revalidation de données, pas sûr que Remix soit "focused on modern web apps UX". Dans une app moderne, les UIs sont complexe et nécessitent beaucoup de données. Pas sûr que l'on puisse se permettre de tout revalider à la moindre mutation. Et malheureusement, intégrer des outils comme React Query dans Remix n'est pas aussi simple que ce que l'on trouve parfois sur les discussions Github. Une bonne piqûre de rappel : soyez sûr de ce que vous faîtes avant de vous marier avec une techno. Perso j'avais mis des abstractions aux bons endroits pour pouvoir migrer assez facilement. (Et si vous cherchez de bonnes refs, allez lire les posts de Mickael Wegerich, ⚡️Michaël Azerhad ou Anthony C.)
I totally agree with you, once I did a deep study to choose the most suitable Meta-Framework for our projects and compared the three leaders: Next, Remix and Astro. And I found that there were a lot of difficulties with Remix: https://medium.com/ekino-france/the-web-rendering-space-race-which-framework-will-take-you-to-the-stars-c1e4be5ce36f#7212 You can also find more insights from community here: https://2023.stateofjs.com/en-US/libraries/meta-frameworks/ Remix show a decrease in interest (from 68% to 48%) and negative feedbacks. Our final decision was to use Next, because except for the folder and file routing conventions, it is opinion-free and seamlessly integrated into the existing ecosystem. To have a broad and good technical adoption, we must not reinvent the wheel but coexist seamlessly with existing tools to maximize the benefits and be realistic. As you say, this is the problem when science is mixed with commercial interests. 😏
D'où l'importance d'anticiper ce type de changement, qui arrivera tôt ou tard avec n'importe quelle technologie (les technos passent, le business reste) : - Isoler au maximum la logique métier, quand il y en a ➡️ Architecture Hexagonale, Functional Core / Imperative Shell ; - Préférer quand c'est possible l'utilisation de plusieurs librairies ("je t'appelle") à celle d'un framework ("ne nous appelez pas, c'est nous qui vous appellerons"), les frameworks ayant la fâcheuse tendance à vouloir votre exclusivité et à vous enfermer 🥲 https://www.linkedin.com/posts/meveillard_framework-monsieurjourdain-librairie-activity-7069560671629111296-TPa4?utm_source=share&utm_medium=member_desktop
Tu conseillerais quoi à quelqu'un qui n'a pas fait de React depuis 3 ans (ma pomme), de se remettre à Next ?
La question qui vient, quel sera le suivant ? 😉
C'est pas que JSON est moins standard que FormData, c'est que JSON n'est pas supporté par le browser. Si on veut faire du progressive enhancement (et en tant qu'industrie on devrait le faire beaucoup plus), FormData est un peu un "mal nécéssaire". On peut espérer, si les approches rendues possibles par Remix et HTMX se répandent, que les browsers évoluent pour permettre de soumettre des formulaires en JSON nativement par exemple. Finalement, est-ce que utiliser FormData n'est pas un acte militant pour un web plus accessible ?
On veut un blog post sur le sujet!
Au final, une SPA full client side bien maîtrisée reste une solution solide alors. Même si j’avoue que j’aime bcp les server components. J’attends de voir comment Tanstack Start va se différencier et faire mieux
Peut-être faire attention quand un nouveau truc hype sort 🙂 parfois les bon vieux trucs ou attendre que cela fasse ces preuves, c’est très bien aussi
On veut un talk sur le sujet 🤩
AncyrAcademy +1500 Etudiants - Consultant & Formateur en Ingénierie Logicielle - Auteur de Pragmatic Objects - POO | Extreme Programming | Real DevOps | DDD | TDD | Clean Architecture - TS | NodeJS | Java | Kotlin | C#
1 sem.C'est pour ça que je joue avec des technos qui font du MPA bête et méchant, avec une dose de AlpineJS et de HTMX là où ça fait du bien, et plus si besoin. Le principal inconvénient c'est qu'on quitte l'approche Component-driven des apps front-end et qu'on part plus sur du Section-driven (un template réutilisable par section). Le second est que la DX est moins poussée, surtout sur des langages compilés comme C# ou Java. Tu peux arriver à faire tourner Vite pour mettre à jour les assets en live, un peu plus difficile pour les templates. Je pense que Ruby & PHP ont une bien meilleure DX de ce côté là (pas de compilation) mais j'peux pas souffrir ces langages.