Remplacement de la stack HTMx #65
Labels
No Label
bug
duplicate
enhancement
help wanted
independant
invalid
module/autre
module/backend
module/desktop
module/docs
module/frontend
module/scripts
module/sesam-vitale
module/utils
open-source
question
to-triage
wontfix
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: P4Pillon/Krys4lide#65
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Comme évoqué sur Matrix il y a quelques semaines, à l'usage, HTMx est finalement un frein dans le développement de l'interface. La simple tentative de mettre en place, dans #61, une popup de login s'avère pénible. HTMx, c'est très bien pour des sites web, en concurrence avec un Django ou un RoR, mais pour des applications, on sort de son cadre idéal et c'est juste relou.
Il est donc temps de passer à une nouvelle stack. Ce ticket est là pour en discuter.
Architecture
Avec HTMx, on était parti sur une architecture "client lourd autonome" avec un seul binaire, comportant :
J'aimerais remettre en question cette approche "client lourd autonome", pour envisager une solution séparant le client du serveur+bdd. Cela fait suite aux observations effectuées dans les pharmacies du projet, sur leur fonctionnement et leur infrastructure, ainsi qu'une meilleure compréhension du fonctionnement des LGO.
En effet, la "base de donnée" est centrale dans un LGO, et se doit d'être une "unique source de vérité". Aussi, il parait logique d'avoir, de manière stable, un "serveur backend" installé sur une des machines d'une officine ; et d'avoir des clients qui s'y connectent.
En se débarrassant de HTMx, on se débarrasse de la nécessité d'avoir un serveur pour générer le frontend : par exemple, avec une SPA, tout le frontend peut être fournis à la webview de Tauri sous la forme d'assets web (JS/Webcomponents/CSS/...).
On peut donc, sans contraintes, adopter une architecture client "lourd" (tauri+SPA) - serveur.
Je ne vois, finalement, que des avantages à cette approche :
On aurait donc :
Techno SPA
Deux approches s'offrent à nous :
J'ai creusé un peu les avantages/inconvénients des approches TS versus Rust, et voilà mes observations :
À titre personnel, après toutes ces réflexions, je suis tenté pour aller vers une approche Tauri + Vue/Vite en Typescript.
C'est une techno que je maitrise déjà, qui est réputée et largement pratiquée sur le marché.
C'est moins funky que Leptos, par exemple, et réduit les risques (d'avoir du mal à recruter, de voir la techno disparaître, de rencontrer des problèmes marginaux ...)
Je pense intéressant, également, de s'appuyer sur Nuxt (surcouche à Vue) plutôt que sur Vue "vanilla", pour plusieurs raisons :