Elixir/Phoenix Liveview était une erreur

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.

Image

j’avais l’impression d’être en ligne.

Image

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.

Image

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…

Image

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

Image

(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é.)

Image



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *