IPB

Bienvenue invité ( Connexion | Inscription )

> Elixir - Phoenix Live view & Hooks, Retour vers le futur
Options
Jaypee
posté 27 May 2020, 09:53
Message #1


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Bonjour,

J'ai été amené à m'intéresser à cette technologie, pour pouvoir participer à un projet dont des amis développent les aspects applicatifs, j'interviens en support technique. C'est autour du robot fermier de FarmBot, composé d'un Arduino pour la partie CNC ET d'un Raspberry pour les applications, et il se trouve que le portail d'administration et d'application intégré, Open Source, est écrit en Elixir et Phoenix.

Petit retour en arrière, vers 2004, la technologie Ruby on Rails révolutionnait le développement Web rapide, et avait permis entre autre de déployer la première version de Twitter. Son héritage est toujours présent avec l'architecture de l'application et des fichiers que beaucoup de "frameworks" de dev pour le web utilisent aujourd'hui encore. Son problème, les perfs. Un des développeurs de ce projet RoR décide de repartir sur des bases plus solides, sans renier le style de Ruby, et crée Elixir, avec comme fondation rien moins que Erlang, le langage d'Ericsson, spécialisé dans le temps réel, un vrai socle ancré dans la culture industrielle. Le langage ressemble beaucoup à Ruby, avec un parti pris de "programmation fonctionnelle", et de "pattern matching". Parmi les constructions du langage, inhabituelle mais très expressive et concise, se trouve par exemple le "cond", qui est comme un switch/case mais avec des booléens et des cas multiples, pas seulement une seule expression et les deux cas vrai ou faux. Les cas ont chacun une expression booléenne, et la première qui est évaluée à vrai, déclenche une action et la sortie de ce branchement, une manière expressive et concise de remplacer des if..then..else imbriqués. Pour les traitements l'opérateur pipe: "|>" initialement introduit par Microsoft dans F# est présent. Pour les bibliothèques, ce sont celles de Erlang qui sont interopérables, donc inutile de réinventer la roue, en plus des bibliothèques Elixir.
Et de la même manière que Rails apporte la dimension développement web à Ruby, Phoenix est la plateforme web associée à Elixir. L'idée est de laisser le serveur générer l'HTML grâce à des templates, et d'utiliser une communication rapide par websockets avec le navigateur. Récemment (< 18 mois), le Phoenix de base s'est enrichi de deux nouveaux aspects Live View (générateur d'HTML du serveur) et Hooks (pour interopérer avec JS). Et bien sûr, il existe aussi plusieurs intégrations de la techno Web Assembly de Mozilla.

Cela ressemble à un parfait premier de la classe qui coche toute les cases, avec déjà une certaine maturité, mais qui reste dans une niche. Pour les curieux quelques videos YT, pas trop longues :
- Pour ceux qui veulent rester à un haut niveau sans trop de détails, https://www.youtube.com/watch?v=yo8Y1SUGW1w
- Plus de code, mais pas trop d'explications, construction d'un "chat" persistant les messages dans Postgres : https://www.youtube.com/watch?v=ZUNzXbIP_FQ
- Gratuit avec inscription, cours d'intro à Elixir sur Udemy: https://www.udemy.com/course/elixir-program...-for-beginners/

Notez que les tutos ou formations Phoenix doivent s'aligner sur ces technos (LiveView et Hooks) récentes et tous/toutes ne le font pas.
J-P

Ce message a été modifié par Jaypee - 27 May 2020, 10:05.
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 15th May 2024 - 05:09