Concurrence en Go (Golang) : Guide pratique
Concurrence en Go (Golang) : Guide pratique
Résumé :
Le livre « Concurrence en Go (Golang) » est un guide pratique complet qui vous aidera à maîtriser l'un des sujets les plus puissants et en même temps les plus complexes du langage de programmation Go. La concurrence est intégrée dans l'architecture même de Go, et sans sa compréhension, il est impossible de créer des applications efficaces, rapides et évolutives. Ce livre vous guidera des bases jusqu'aux motifs avancés utilisés dans les systèmes de production.
De quoi parle ce livre
Le livre commence par les concepts fondamentaux : ce que sont les goroutines et en quoi elles diffèrent des threads du système d'exploitation, comment fonctionnent les canaux (buffered et unbuffered), et comment synchroniser correctement l'accès aux données à l'aide de mutex et d'opérations atomiques. Vous apprendrez à éviter les conditions de course (race condition) et les blocages mutuels (deadlock). Ensuite, l'auteur aborde des sujets plus complexes :
- Motifs utilisant
selectet les timeouts - Organisation de pipelines de données (pipeline)
- Gestion d'un groupe de goroutines avec
sync.WaitGroupeterrgroup - Utilisation d'un pool de workers pour contrôler le parallélisme
- Contextes (context) et annulation d'opérations
- Primitives de synchronisation avancées :
sync.Once,sync.Pool,sync.Cond - Test du code concurrent avec
go test -race
À qui s'adresse ce livre
Ce livre sera utile :
- Aux développeurs Go débutants qui ont déjà maîtrisé la syntaxe du langage et souhaitent comprendre comment écrire des programmes multithreads efficaces
- Aux programmeurs expérimentés dans d'autres langages (Java, C#, Python) qui passent à Go et souhaitent étudier son modèle unique de concurrence
- Aux développeurs backend créant des services à forte charge, des microservices, des serveurs web et des systèmes en temps réel
- Aux étudiants et à tous ceux qui s'intéressent à la programmation parallèle et souhaitent maîtriser les meilleures pratiques
Ce que vous apprendrez après la lecture
Après avoir étudié le contenu, vous serez capable de :
- Concevoir correctement des architectures concurrentes en évitant les erreurs typiques
- Utiliser efficacement les goroutines et les canaux pour le transfert de données et la synchronisation
- Écrire du code fiable, protégé contre les courses de données et les deadlocks
- Appliquer des motifs avancés : fan-in, fan-out, or-done, tee-channel, bridge-channel
- Intégrer la concurrence dans des projets réels à l'aide de context et de graceful shutdown
- Profiler et déboguer le code concurrent
Le livre contient de nombreux exemples de code que vous pouvez exécuter et modifier immédiatement. Tous les exemples sont accompagnés de commentaires et d'explications détaillés. Ce n'est pas simplement de la théorie — c'est un guide pratique qui deviendra votre ouvrage de référence sur la concurrence en Go.
L'auteur du livre est Alexeï Kouznetsov, développeur backend senior avec 10 ans d'expérience, dont les 6 dernières années passées à écrire en Go sur des projets à forte charge. Alexeï est connu pour ses présentations lors de conférences de la communauté Go et pour sa série d'articles sur la programmation concurrente.