L’environnement Go
- Les principales commandes (go, gofmt, godoc).
- Les tests unitaires, les benchmarks.
- Quelques IDE.
Travaux pratiques
Prise en main de l'environnement de développement.
Les constructions de base du langage
- Les unités de compilation, les packages et les modules : contrôle de la visibilité des classes, mécanisme d'import.
- Les variables (les différentes formes de déclaration), les types primitifs.
- Les instructions de contrôle : les instructions conditionnelles, de boucle, de branchement.
- Les fonctions (les retours multiples, les fonctions variadiques, anonymes).
- Les pointeurs.
Travaux pratiques
Suite d'exercices illustrant les constructions présentées.
Les constructions plus avancées du langage
- Les tableaux, les slides, les structs et les maps.
- L’itérateur range.
- Les méthodes.
- Les interfaces.
- Le traitement des erreurs (panic, recover).
- Les fonctions deferred.
- La construction iota.
Travaux pratiques
Suite d’exercices mettant en œuvre les constructions présentées.
La programmation du parallélisme
- Les concepts de base et les instructions correspondantes (threads, goroutines, channels et select).
- Le parallélisme vs la concurrence.
- La gestion de la concurrence : les verrous, les barrières.
Travaux pratiques
Construction d’une application multithreadée.
Quelques packages et bibliothèques
- La gestion du système de fichiers.
- Les entrée/sorties simples.
- Les classes de communication réseau.
- La réflexion (les concepts et le package associé).
Travaux pratiques
Construction d’une petite application mettant en œuvre la réflexion et la communication.
Compléments
- Les tests unitaires.
- Les benchmarks.
Travaux pratiques
Réalisation d'un ensemble de tests unitaires et de mesures de performances sur une application simple.