Elixir/Phoenix Liveview était une erreur
J’ai pris une décision technique coûteuse concernant Phoenix Liveview pour l’application Web Smol Talk il y a environ un an, que je regrette maintenant, et je prends quelques notes pour expliquer pourquoi.
Pour être clair, il s’agit certainement d’un problème de compétences, mais la courbe d’apprentissage n’en valait tout simplement pas la peine (pour quelqu’un qui maîtrise déjà JS/Python).
Nous avions besoin d’une plateforme de pipeline récapitulative personnalisable. J’avais toujours admiré Elixir et Liveview de loin et j’avais un ami qui était prêt à les construire. Alors j’ai dit oui.
- J’ai toujours aimé l’idée d’un simple rendu monolithique côté serveur
- Doit être rapide et facile à restituer les différences HTML (un peu comme les composants du serveur React)
- en particulier lorsqu’une belle intégration avec l’ORM rend automatiques les vues CRUD des champs
- Elixir semblait tolérant aux pannes et rapide
- Oban avait une bonne réputation en tant que coureur de chantier
Instabilité/Lenteur
Les pages étaient TRÈS lentes à charger.
et environ 20 ? 30 ? % des chargements de pages ont échoué. Je suis presque sûr que ce n’est pas un problème de base de données, c’est juste très lent à restituer beaucoup d’interface utilisateur.
j’avais l’impression d’être en ligne.
immaturité de l’écosystème
nous avons pu choisir les éléments SOTA pour notre application. Je compte que 20 de nos dépendances sur 36 (55%) sont des versions 0.x.
Impossible de faire des formulaires conditionnels
cela est sûrement lié à nos choix de dépendances, mais je voulais que certains éléments de l’interface utilisateur apparaissent ou soient ajoutables, sous réserve de certains autres éléments. Cela nous a coûté une semaine à bidouiller du code avant d’abandonner et de conclure que ce n’était pas possible sans…
Ajout de JS
pour avoir toute l’interactivité côté client que vous souhaitez fondamentalement avec JS. LiveView offre de bons moyens de transmettre des données aux composants js, mais au moment où vous écrivez des composants, vous souhaitez en écrire de plus en plus jusqu’à ce que vous n’utilisiez Phoenix que comme backend d’API. alors autant écrire un SPA.
Erreurs horribles
je voudrais vous montrer ces erreurs mais pour le moment, l’application ne se charge pas, donc
(l’addendum est ok, il se charge maintenant… et oui, ce genre de poubelle absolue est normal. Aucune gestion des erreurs sûre que vous attendez d’un système sensé.)
