Go (Golang) pour les microservices cloud-native
Go (Golang) pour les microservices cloud-native
Maîtrisez le langage des infrastructures modernes. Ce cours vous emmène du niveau débutant à expert en Go, en mettant l'accent sur la construction de microservices concurrents et performants en utilisant uniquement la bibliothèque standard. Apprenez les rouages internes du langage favori de Docker et Kubernetes, maîtrisez les Goroutines et construisez des API prêtes pour la production sans la « magie » des frameworks lourds. Nous nous concentrons sur la performance pure, la clarté et l'écosystème cloud-native.
Leçons
- La philosophie Go : pourquoi choisir Go pour l'infrastructure ?
- Configurer votre espace de travail Go
- L'anatomie d'un programme Go
- Variables et types primitifs
- Flux de contrôle : If, Else et Switch
- Boucles en Go : Uniquement For
- Fonctions : Valeurs de retour multiples
- Pointeurs : N'ayez pas peur
- Structs : Organiser les données
- Méthodes : Ajouter du comportement aux Structs
- Interfaces : Le pouvoir du polymorphisme
- Arrays et Slices : Listes dynamiques
- Maps : Stockage clé-valeur rapide
- Gestion des erreurs : La méthode explicite
- Defer : Nettoyage des ressources
- Introduction à net/http
- Requête et Réponse : Les bases
- JSON : Encodage et Décodage
- Routage : Construire un Multiplexer personnalisé
- Middleware : Intercepter les requêtes
- Projet : Le défi HTTP du matin
- Goroutines : Concurrence légère
- Channels : Communiquer entre Goroutines
- Buffered Channels et débit
- L'instruction Select : Gérer plusieurs Channels
- Context : Annulation et Deadlines
- WaitGroups : Attendre les Goroutines
- Mutexes : Protéger l'état partagé
- Le Repository Pattern en Go
- Injection de dépendances sans frameworks
- Tests unitaires : La méthode intégrée
- Table-Driven Tests : Le standard Go
- Mocking avec les interfaces
- Arrêt progressif (Graceful Shutdown) : Nettoyer à la sortie
- Dockeriser votre microservice Go
- Go et les variables d'environnement
- Logging pour l'observabilité
- Connexion à PostgreSQL
- Exécuter des requêtes et scanner les lignes
- Transactions de base de données en Go
- Stratégies de versioning d'API
- Health Checks : Liveness et Readiness
- Métriques avec Prometheus
- Middleware pour CORS
- Authentification : Implémentation JWT
- Rate Limiting pour la protection
- Travailler avec Redis : Caching
- Packages internes vs externes
- Profilage de performance avec pprof
- Benchmarks Go : Mesurer la vitesse du code
- Intégrer des fichiers dans les binaires
- Réflexion : Quand l'utiliser (et l'éviter)
- Les Génériques en Go (v1.18+)
- Le défi HTTP du matin : Niveau 2
- YAML de déploiement Kubernetes
- CI/CD pour Go avec GitHub Actions
- Analyse statique et Linting
- Projet final : Construire une file d'attente de tâches distribuée
- Optimiser les binaires Go pour la production
- Conclusion : Le chemin vers la maîtrise