Apprends à coder en pratiquant.
Trois cours tirés de livres de référence : Go, systèmes de données, architecture logicielle. Tu lis, tu codes, tu passes les tests, puis tu avances.
Un module, quatre gestes
Chaque geste rapporte de l'XP. Le module suivant s'ouvre quand tu maîtrises celui-ci.
Lire
Une leçon courte, tirée du livre, avec la page d’origine.
+30 XPCoder
Un exercice dans l’éditeur, exécuté pour de vrai.
indices au besoinValider
Des tests valident ton code. Pour l’architecture, une grille d’évaluation.
+50 XPOuvrir la suite
Le module suivant s’ouvre quand tu maîtrises celui-ci.
module suivant
Trois cours
Commence par Go : les exercices des deux autres cours s'écrivent en Go. Chaque cours a un projet fil rouge qui grandit à chaque module.
- 1
Go idiomatique
D'après Learning Go, 2nd Edition, Jon Bodner
Le langage, de la première variable à la concurrence et aux tests, en écrivant du Go qui compile et qui passe ses tests.
Relay — un mini-service de jobs
Un service HTTP construit module après module : types, erreurs, concurrence, API, tests.
len=2 cap=1515 modules en 4 parcours, 2 déjà prêts
- 2
Systèmes de données
D'après Designing Data-Intensive Applications, Martin Kleppmann
Comment une base stocke, réplique, partitionne et garde ses données cohérentes. Chaque mécanisme du livre est reconstruit en petit, en Go.
Conseillé après Go idiomatique, jusqu'au module « Concurrence ». Les TP manipulent goroutines, channels et verrous dès la réplication.
Tinybase — un mini-système de données
Un moteur clé-valeur en Go qui grandit module après module : log, index, réplication, partitions, transactions, consensus, flux.
len=0 cap=1818 modules en 3 parcours, rédaction en cours
- 3
Architecte logiciel
D'après Fundamentals of Software Architecture, Mark Richards et Neal Ford
Raisonner en trade-offs : caractéristiques, styles, décisions et risques. Des katas et des ADR notés par rubrique, et des outils Go qui mesurent l'architecture.
Conseillé après Go idiomatique, jusqu'au module « Types, méthodes et interfaces ». Les outils archkit s'écrivent en Go : packages, interfaces et tests.
Going, Going, Gone — le dossier d'architecture
Un site d'enchères en ligne, conçu de bout en bout : caractéristiques, quanta, style, ADR, risques et diagrammes, plus la boîte à outils Go archkit.
len=0 cap=2020 modules en 6 parcours, rédaction en cours
Comprendre en voyant
Les idées difficiles ont leur animation, à regarder ou à manipuler. Exemple : comment Go répartit cinq tâches sur deux processeurs, étape par étape.
Lire les 19 étapes en texte
- main démarre sur P0. GOMAXPROCS=2 : deux P, chacun avec sa propre file. P1 n’a encore rien à faire.
- go func() crée G2. Une goroutine neuve va dans runnext de P0 : la place prioritaire, pas la file.
- go func() crée G3. G3 prend runnext. G2 recule en fin de file locale.
- P1 vole du travail. P1 était à vide : il prend la moitié de la file de P0, soit G2, et l’exécute.
- go func() crée G4. G4 prend runnext, G3 passe dans la file locale.
- go func() crée G5. G5 prend runnext, G4 suit G3 dans la file locale.
- wg.Wait() bloque main. G1 est garée : elle attend sans occuper de P ni de thread.
- P0 reprend runnext. runnext passe avant la file : la dernière goroutine créée, G5, tourne en premier.
- G2 se termine. wg.Done() décrémente le compteur. P1 est de nouveau à vide.
- P1 vole encore. File de P0 : G3 et G4. P1 en prend la moitié, G3, et l’exécute.
- G5 est préemptée. Après 10 ms sans rendre la main, G5 est interrompue et part dans la file globale.
- P0 prend sa file locale. runnext est vide : P0 exécute G4, en tête de sa file.
- G3 se termine. P1 n’a plus rien en local.
- P1 lit la file globale. File locale vide : P1 reprend G5 depuis la file globale.
- G4 se termine. P0 n’a plus rien et rien à voler : il reste inactif.
- Le dernier wg.Done() réveille main. Le compteur tombe à zéro : G1 sort de l’attente et prend runnext de P1.
- G5 se termine. P1 se libère.
- main reprend sur P1. G1 continue là où elle s’était arrêtée, sur un autre P qu’au départ.
- main se termine. Le programme s’arrête : cinq goroutines se sont partagé deux P.
Ta progression, en clair
Niveaux, série de jours, boss en fin de module, badges. Voici un profil après quelques semaines.
Niveau 7
1 860 XP au total
310/500 XP, encore 190 avant le niveau 8
12 jours
d’affilée, au moins une action par jour
Boss du module Types composites
L’entrepôt du Black Friday
+250 XP
- Première leçon, obtenu
- Premier TP au vert, obtenu
- Une semaine pleine, obtenu
- Module maîtrisé, pas encore obtenu
- Trente jours actifs, pas encore obtenu
Un espace privé, un seul mot de passe.
Se connecter