Go (Golang) : Maîtriser le développement d'applications performantes et concurrentes Mixte : présentiel / à distance
Dernière mise à jour : 18/03/2026
Description
Module 1 : Philosophie et Fondamentaux de Go
- Introduction : Genèse chez Google, pourquoi Go ? (simplicité vs performance).
- Environnement : Installation, gestion des modules (go mod), structure d'un projet.
- Syntaxe de base : Variables, constantes, inférence de type et typage strict.
- Structures de contrôle : if, switch, et l'unique boucle for.
- Fonctions : Retours multiples, paramètres nommés, fonctions anonymes et closures.
- TP : Création d'un utilitaire CLI pour manipuler des données d'entrée.
Module 2 : Types de données et Gestion de la mémoire
- Collections : Tableaux (arrays), Slices (mécanisme interne, capacité/longueur) et Maps.
- Pointeurs : Comprendre le passage par valeur vs référence sans la complexité du C.
- Structures : Définition, composition (à la place de l'héritage) et tags de structure (JSON).
- Méthodes : Associer des comportements aux types.
- TP : Modélisation d'un système de gestion de stocks avec structures imbriquées.
Module 3 : Interfaces, Erreurs et Programmation Défensive
- Interfaces : L'implémentation implicite (le "Duck Typing" statique).
- Gestion des erreurs : La philosophie Go (pas d'exceptions), le type error.
- Contrôle de flux avancé : defer, panic et recover.
- Assertions de type : Switch de type et interfaces vides.
- TP : Création d'un système de logging multi-support (Fichier/Console) via les interfaces.
Module 4 : Maîtrise de la Concurrence (Le cœur de Go)
- Goroutines : Parallélisme léger et ordonnanceur de Go.
- Channels : Communication et synchronisation entre processus.
- Patterns de concurrence : Select, WaitGroups et Mutex (package sync).
- Détection de bugs : Utilisation du "Race Detector".
- TP : Développement d'un agrégateur de données asynchrone (Scraper de données en parallèle).
Module 5 : Tooling, Tests et Qualité de code
- Tests unitaires : Le package testing, benchmarks et exemples.
- Qualité : Formatage (gofmt), peluchage (go vet, golangci-lint).
- Documentation : Générer une doc propre avec godoc.
- Profilage : Introduction à l'analyse de performance (CPU/Mémoire).
- TP : Mise en place d'une suite de tests avec couverture de code (Code Coverage).
Module 6 : Vers la Production : API REST et Déploiement
- Bibliothèque standard : net/http pour créer un serveur web.
- Frameworks : Introduction à l'écosystème (ex: Gin ou Echo).
- Persistance : Interaction avec une base de données SQL (PostgreSQL) et notions d'ORM (GORM).
- Packaging : Compilation statique et création de Dockerfiles optimisés (images distroless/scratch).
- TP final : Développement complet d'une API REST de gestion de tâches, connectée à une base de données et conteneurisée.
Objectifs de la formation
À l'issue de cette formation, le stagiaire sera capable de :
-
Installer et configurer un environnement de développement Go standard.
-
Appliquer les spécificités syntaxiques (typage statique, structures, pointeurs) pour écrire un code robuste.
-
Concevoir des interfaces pour créer des architectures découplées et testables.
-
Implémenter la concurrence via les Goroutines et les Channels en évitant les "race conditions".
-
Développer et tester une API REST conforme aux standards du marché.
-
Packager et optimiser une application Go pour un déploiement en production.
Public visé
-
Développeurs (Back-end, Fullstack, Système) souhaitant monter en compétence sur un langage moderne.
-
Architectes logiciels et Ops/SRE souhaitant comprendre ou maintenir des outils comme Docker ou Kubernetes (écrits en Go).
Prérequis
-
Maîtrise d'au moins un langage de programmation structuré ou objet (Java, C/C++, Python, PHP, etc.).
-
Familiarité avec l'usage de la ligne de commande (Terminal).
-
Des notions sur les protocoles HTTP et le format JSON sont un plus.
Modalités pédagogiques
Session dispensée en présentiel ou téléprésentiel, selon la modalité inter-entreprises ou intra-entreprises sur mesure.
La formation est animée par un(e) formateur(trice) durant toute la durée de la session et présentant une suite de modules théoriques clôturés par des ateliers pratiques validant l'acquisition des connaissances. Les ateliers peuvent être accompagnés de Quizz.
L'animateur(trice) présente la partie théorique à l'aide de support de présentation, d'animation réalisée sur un environnement de démonstration.
En présentiel comme en téléprésentiel, l'animateur(trice) accompagne les participants durant la réalisation des ateliers.
Moyens et supports pédagogiques
Cadre présentiel
Salles de formation équipées et accessibles aux personnes à mobilité réduite.
- Un poste de travail par participant
- Un support de cours numérique ou papier (au choix)
- Un bloc-notes + stylo
- Vidéoprojection sur tableau blanc
- Connexion Internet
- Accès extranet pour partage de documents et émargement électronique
Cadre téléprésentiel
Session dispensée via notre solution iClassroom s'appuyant sur Microsoft Teams.
- Un compte Office 365 par participant
- Un poste virtuel par participant
- Un support numérique (PDF ou Web)
- Accès extranet pour partage de documents et émargement électronique
Modalités d'évaluation et de suivi
Avant
Afin de valider le choix d'un programme de formation, une évaluation des prérequis est réalisée à l'aide d'un questionnaire en ligne ou lors d'un échange avec le formateur(trice) qui validera la base de connaissances nécessaires.
Pendant
Après chaque module théorique, un ou des ateliers pratiques permettent la validation de l'acquisition des connaissances. Un Quizz peut accompagner l'atelier pratique.
Après
Un examen de certification si le programme de formation le prévoit dans les conditions de l'éditeur ou du centre de test (TOSA, Pearson Vue, ENI, PeopleCert)
Enfin
Un questionnaire de satisfaction permet au participant d'évaluer la qualité de la prestation.