Objectifs pédagogiques
- Reconnaître et utiliser les concepts de base du langage Go
- Ecrire des programmes simples en Go
- Mettre en oeuvre les mécanismes de programmation multi-thread.
Niveau requis
Connaître un langage de programmation structuré.
Public concerné
Tout développeur souhaitant apprendre la programmation avec le langage Go.
Programme
Introduction
- Historique de Go
- Objectifs des fondateurs
- Positionnement par rapport aux autres langages
- Particularités techniques
- Programmation multi-threading
- Simplicité
- Aspects compilation et gestion de la mémoire
- Documentation de référence pour les développeurs
Premiers pas avec Go
- Prérequis système
- Outils
- Installation de l'environnement de développement
- Création d'un programme simple en Go : "Hello World"
Fondamentaux
- Notions de packages et d'imports
- Variables
- Types de base
- Conversion de types
- Constantes
- Instructions de contrôle (boucles, tests...)
- for
- if
- else
- switch
- defer
Exemple de travaux pratiques (à titre indicatif)
- Utilisation de boucles et fonctions
Autres types
- Pointeurs
- Structures
- Tableaux
- Notion de slices et de maps
Méthodes et interfaces
- Définition des méthodes en Go
- Les pointeurs et fonctions
- Définition des interfaces
- Implémentations
- Les types assertions et types switch
Programmation concurrente
- Présentation des goroutines
- Principe
- Exemple de fonctionnement
- Notion de channel
Exemple de travaux pratiques (à titre indicatif)
- Programmation sur une architecture multiprocesseurs
Compléments
- Quelques packages utiles
- json
- gobs
- reflect
- image
- image / draw
- Debugging de code avec GDB
- Data Race Detector
- Godoc pour la documentation
- Outils d'optimisation de code
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation ou une certification (M2i ou éditeur)