- Introduction
- La genèse du projet BSD Go chez Google
- Installation de Go sur sa machine et création d’un premier binaire
- Les 25 mots clefs de Go
- Les types et les structures
- Les types primitifs et type de pointeurs
- Alias de type vs. Définition de type
- Création de structure de type et composition de structure
- Les constantes (définition de type, iota, tableau de références, précision de calcul, type fongible)
- Les types de collections
- Les arrays, slices et les maps
- Déclaration et allocation mémoire avec make
- Ajouter, supprimer, effacer, supprimer
- Utilisation du for pour parcourir
- Gestion de la valeur par défaut
- Les fonctions et les méthodes
- Les paramètres et retours de fonction
- Création de méthode sur une structure
- Quand utiliser le receveur pointeur et quand retourner une valeur pointeur
- Le constructeur idiomatique et structure optionnel de configuration
- Documentation et export à l’extérieur du package
- Les interfaces
- Les interfaces et les valeurs de contract
- Satisfaire des interfaces existante (error, marshaler, stringer)
- Créer sa propre interface de contract
- Composition d’interface
- Choix dans un programme pourquoi utiliser une interface
|
- Les tests unitaires
- Création d’un jeu de tests unitaires, table de tests
- Commandes avec Go test pour la couverture du code et génération de documents
- Création de benchmarks et affichage d’allocation
- Utilisation de packages en plus (testify, go-convey)
- La concurrence
- Utilisation de WaitGroupes et mutexes
- Gestion d’un deadlock et des erreurs
- Les fonctions atomiques
- Création de channels bufferisé et non bufferisé
- La déclaration avexc le select bloquant et non bloquant
- Design pattern avec la concurrence (Pool,Fan-out, Fan-in, Pipeline)
- Ateliers
- Exercices de validation de connaissance
- Créationd’une API REST avec du JSON (Gin, PostgreSQL, Gorm, Kafka, Redis, Docker, Docker composee, Makefile, YML de config)
|