Parcours d'apprentissage
Cette page ordonne toutes les notes du dépôt du débutant à l’avancé. L’objectif : savoir par où commencer et quoi lire ensuite, plutôt que de piocher au hasard.
Exécuter les notebooks
Les notes portant un bouton ▶ Exécuter dans Livebook sont des Livebooks : du texte et du code que vous pouvez modifier et lancer.
Le bouton vous emmène sur livebook.dev, qui transmet le notebook à votre Livebook. La toute première fois, il faut lui dire où le joindre. La section est en bas de la page, sous l'aperçu du notebook — intitulée « Have you already installed Livebook? », et le bouton « ↓ Configure Livebook » y descend directement.
Trois cas, selon votre installation :
- L'application Livebook, sur Mac ou Windows
- Cochez « I use Livebook Desktop for Windows/Mac ». Il n'y a alors aucune adresse à saisir : l'application est jointe directement.
- Un Livebook local lancé autrement (serveur, Docker…)
- Laissez la case décochée et donnez son adresse. Le champ est en général déjà pré-rempli, et le port n'est pas forcément 8080 — Livebook en choisit souvent un à lui.
- Un Livebook distant ou hébergé
- L'adresse de votre instance est obligatoire ; saisissez-la à la place de celle proposée.
Dans les deux cas où une adresse est nécessaire, un voyant vert « ✓ Livebook up » confirme que la connexion passe. Il ne reste qu'à cliquer « Run notebook ».
Le réglage est mémorisé par votre navigateur : les fois suivantes, le notebook s'ouvre sans repasser par là.
Pas de Livebook ? Le titre de chaque note est un lien vers son fichier sur GitHub : tout le texte et tout le code y sont, seule l'exécution manque.
Avant de commencer
- Installer Elixir
- Installer Livebook, pour exécuter les notebooks du parcours
- Garder la documentation officielle sous la main
🟢 Débutantétape 1 / 7
Les bases du langage
Le socle. À suivre dans l'ordre : chaque notebook s'appuie sur le précédent.
- 0Pièges quand on vient d’un langage objet
à lire en premier — les réflexes Java, C#, Python ou JS à désamorcer
Exécuter dans Livebook - 1
- 2Pipe
|>,with& récursiondes enchaînements lisibles, « boucler » sans boucle
Exécuter dans Livebook - 3
À garder sous la main
- Débogage & outillage IEx
le shell interactif comme terrain d’essai, puis
IO.inspect,dbget les points d’arrêt
Objectif atteint : lire et écrire du code Elixir idiomatique simple
🟡 Intermédiaireétape 2 / 7
Structurer & faire tourner des processus
Organiser ses données, puis entrer dans le modèle de concurrence qui fait la réputation d'Elixir.
- 4Structs, protocoles & behaviours
modéliser ses données, les deux formes de polymorphisme
Exécuter dans Livebook - 5OTP : GenServer & Supervisor
l’état dans un processus, le « let it crash », la supervision — le cœur d’Elixir
Exécuter dans Livebook
À garder sous la main
- Lire une stacktrace / comprendre les erreurs
le réflexe qui débloque quand ça plante — à garder sous la main dès maintenant
Objectif atteint : organiser son code et comprendre le modèle de concurrence d'Elixir
🟡 Intermédiaireétape 3 / 7
Persister des données avec Ecto
La couche base de données d'Elixir, des migrations aux requêtes composables.
- 6Ecto — les bases
migrations, schémas, seeds
- 7Ecto avancé
changesets & validations, associations, transactions, requêtes composables
À garder sous la main
Objectif atteint : modéliser une base, valider les entrées, écrire des requêtes propres
🟡 Intermédiaireétape 4 / 7
Tester son code
Deux marches : les doctests pour commencer, ExUnit pour de bon.
- 8Tests unitaires dans les commentaires (doctests)
la porte d’entrée
- 9Tests avec ExUnit
describe/test, fixtures, mocks (Mox), données de test, sandbox Ecto
Objectif atteint : écrire des tests fiables et isolés
🟡 Intermédiaireétape 5 / 7
Phoenix « classique »
Le socle requête / réponse, avant d'aborder le temps réel.
- 10Phoenix hors LiveView : routing, contexts & contrôleurs
les contexts comme frontière métier, les routes vérifiées
~p
Objectif atteint : servir des pages et des API JSON, comprendre le trajet d'une requête
🔴 Avancéétape 6 / 7
Construire une interface temps réel
LiveView : de l'interactivité sans écrire de JavaScript, ou presque.
- 11Phoenix LiveView — l’essentiel
cycle de vie, assigns, events, PubSub, streams, Hooks JS
À garder sous la main
Objectif atteint : des pages interactives sans (presque) écrire de JavaScript
🏁 Mise en pratiqueétape 7 / 7
Le projet fil rouge
Quand les étapes précédentes sont passées, tout assembler dans une vraie application.
- Kanban collaboratif temps réel
un Trello-like multi-utilisateur en drag & drop, construit pas à pas — chaque étape réutilise une notion du parcours
Objectif atteint : assembler tout le parcours dans une application temps réel
Parcours par objectif
Pressé, ou déjà à l’aise ? Entrez par le besoin plutôt que par l’ordre.
- Comprendre la mentalité fonctionnelle
- Étape 1, les bases dans l'ordre
- Faire de la concurrence, du temps réel
- OTP, puis LiveView
- Manipuler une base de données
- Ecto, puis Ecto avancé
- Sécuriser mon code par des tests
- ExUnit
- Servir des pages ou une API avec Phoenix
- Phoenix hors LiveView
- Construire une interface réactive
- LiveView
- Essayer le langage sans monter un projet
- Débogage & outillage IEx
- Débloquer une erreur, un crash
- Lire une stacktrace
Boîte à outils
À consulter au besoin, hors parcours.
À venir
Pistes pour enrichir le parcours — les contributions sont bienvenues.
- Jobs en arrière-plan avec Oban
- Déploiement : releases,
runtime.exs, hébergeurs