000.000 Le langage Go#
010.000 Introduction, historique et installation de Go#
- Historique et objectifs du langage
- Comparaison de Go avec d'autres langages populaires (C, Python, Java, etc.)
- Installation et configuration de l'environnement de développement
Travaux pratiques :
- Installer Go et configurer l'environnement de développement
- Créer un "Hello, World!" en Go, compiler, exécuter le programme
020.000 Syntaxe, variables, types de base et structures de contrôle#
- Variables, constantes et déclarations
- Types de données de base
- Structures de contrôle (if, for, switch, defer)
Travaux pratiques :
- Calculer la somme et la moyenne d'une liste de nombres
- Créer un programme pour convertir des températures entre Celsius et Fahrenheit
030.000 Fonctions, méthodes, interfaces et gestion des erreurs#
- Déclaration et utilisation de fonctions
- Méthodes et interfaces
- Gestion des erreurs et conventions
Travaux pratiques :
- Implémenter une calculatrice avec des opérations personnalisées
- Créer une bibliothèque pour lire et écrire des fichiers CSV avec une gestion d'erreurs robuste
040.000 Pointeurs, allocation de mémoire, structures et types composites#
- Pointeurs et allocation de mémoire
- Structures et méthodes
- Tableaux, slices et maps
Travaux pratiques :
- Créer une bibliothèque pour gérer des formes géométriques et calculer leurs aires
- Créer un programme de gestion d'inventaire
050.000 Concurrence, goroutines et synchronisation#
- Goroutines et concurrence
- Canaux et communication entre goroutines
- Patterns de concurrence et select
Travaux pratiques :
- Calculer des factoriels en parallèle
- Développer un système de files d'attente (queue) pour traiter des tâches en parallèle
060.000 Packages, modules et gestion des dépendances#
- Création et utilisation de packages
- Go modules et gestion des dépendances
Travaux pratiques :
- Créer un package personnalisé
- Utiliser un package externe dans un projet Go
070.000 Tests, benchmarks, profiling et documentation#
- Tests unitaires et benchmarks
- Profiling et optimisation
- Documentation et commentaires
Travaux pratiques :
- Écrire des tests unitaires pour une application de calculatrice
- Analyser et optimiser les performances d'un programme
080.000 Programmation orientée réseau et développement d'applications web#
- Client et serveur TCP/UDP
- Création d'un serveur HTTP simple
- Utilisation de gorilla/mux pour créer une API RESTful
Travaux pratiques :
- Créer un serveur de chat simple avec TCP
- Implémenter une API RESTful pour gérer une liste de tâches
090.000 Manipulation de données structurées et communication entre services#
- Encodage et décodage JSON
- Introduction à Google Protocol Buffers
- Utilisation de golang/protobuf
Travaux pratiques :
- Créer une API RESTful qui renvoie des données JSON
- Implémenter un client et un serveur qui communiquent avec des messages protobuf
100.000 Accès aux bases de données et ORM#
- Bases de données relationnelles et SQL
- Introduction à GORM
- Utilisation de jinzhu/gorm pour gérer les bases de données
Travaux pratiques :
- Créer une application de gestion d'utilisateurs avec GORM et une base de données SQLite
- Implémenter un système de gestion de stock avec GORM et une base de données PostgreSQL
110.000 Développement d'applications en ligne de commande#
- Arguments et flags
- Introduction à spf13/cobra
- Utilisation de spf13/cobra pour créer des applications CLI
Travaux pratiques :
- Créer une application CLI pour interagir avec une API RESTful
- Développer un outil en ligne de commande pour analyser et traiter des fichiers CSV
120.000 Bonnes pratiques, empaquetage et déploiement#
- Organisation du code et gestion des dépendances
- Documentation et commentaires
- Empaquetage et distribution d'applications Go
Travaux pratiques :
- Organiser et documenter un projet Go existant
- Compiler et distribuer une application Go en tant qu'exécutable statique
FIN.