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 ».

Page livebook.dev. En haut, l'aperçu du notebook. En bas, la section « Have you already installed Livebook? » : un champ d'adresse pré-rempli avec http://localhost:32123/, désigné par une flèche ; en dessous la mention verte « Livebook up » ; puis la case à cocher « I use Livebook Desktop for Windows/Mac », désignée par une seconde flèche ; et le bouton « Run notebook ».
La section de configuration, tout en bas de la page livebook.dev. Les deux flèches désignent le champ d'adresse et la case à cocher.

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

  1. Installer Elixir
  2. Installer Livebook, pour exécuter les notebooks du parcours
  3. 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.

À garder sous la main

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.

À garder sous la main

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.

À 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.

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.

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.

À 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.

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