Go : les fondamentaux du langage
Développez backends et web services en Go
Présentation du cours
Golang est en train de devenir le langage de prédilection du cloud. Lancé par Google en 2012, il est facile à installer et riche en bibliothèques dans de nombreux domaines. Statiquement typé, succinct, muni d’un ramasse-miette performant, et doté d’un modèle de concurrence limpide, il est rapide à compiler, peu gourmand en mémoire et permet d’utiliser pleinement tous les ressources de vos machines.
Ces caractéristiques en font le langage de choix pour l’implémentation de microservices modernes, simples et légers.
A l’issu de cette formation vous maîtriserez les aspects fondamentaux de la programmation en Go. Vous serez à même d’utiliser l’écosystème Go pour créer rapidement des applications performantes et facilement maintenables, à intégrer à votre système d’information.
Vous retrouverez le bonheur de coder côté backend et partirez confiants dans la réalisation de vos objectifs.
Objectifs
- Maîtriser les fondamentaux du langage Go
- Définir une interface en ligne de commande
- Produire des logs
- Mettre à disposition des services HTTP
- Accéder à une base de donnée avec Go
- Empaqueter et déployer une application Go dans un conteneur docker
Public cible
Développeurs back ou full stack.
Prérequis
- Etre à l’aise avec les concepts généraux de la programmation, des standards du web et des bases de données.
- Savoir cloner un repository git
- Savoir lancer des commande shell
Programme
Module 1: Introduction
- Présentations, organisation des journées
- Go: Concepts-clés, contexte et historique
Module 2: Fondamentaux et classiques
- Compilation, exécution
- Packages, imports
- Types, variables, constantes
- Fonctions
- Structures conditionnelles
- Itérations
Ateliers:
- Exercice autour des fonctions et des structures conditionnelles
- Exercice sur les itérations
Module 3: Structures et pointeurs
- Defer/panic/recover
- Structures
- Pointeurs
Atelier:
- Jeu d’agilité mentale en rapport avec les pointeurs et les structures
Module 4: Types agrégateurs fondamentaux
- Tableaux
- Slices
- Maps
- Itérations sur ces types
- Closures
Ateliers:
- Exercice de manipulations des tableaux et slices
- Exercice sur les closures
Module 5: Méthodes et interfaces
- Méthodes, récepteurs
- Interfaces & Duck Typing
- L’interface vide
- Assertions de type et type switches
Ateliers:
- Exercice sur les méthodes à recepteur de type struct
- Exercice sur les type switches et recover
Module 6: Programmation concurrente
- Goroutines
- Channels
- Itérations sur channels
- Lecture/écriture (non/) bloquantes sur les channels
- Select : multiplexage
Ateliers:
- Exercice sur l’utilisation des goroutines
- Exercice sur l’utilisation des channels pour la synchronisation des goroutines
Module 7: tooling
- Vérification des installations : git, docker
- Clonage du repository git et préparation du workspace
- Le tooling Go (run, build, test, …)
- Le Makefile
- Les vendors
- Présentation du projet à coder
Module 8: CLI : La ligne de commande
- Lancer un programme en ligne de commande
- Natif et bibliothèques
- Le parsing des arguments
Atelier:
- Compléter la gestion CLI de l’application du projet
Module 9: Logging
- Logger son application
- Natif et bibliothèques
- Configurer son logger
- L’exploitation des logs
Atelier:
- Mise en place des logs dans l’appli
Module 10: Concurrence, multi-threading, tests unitaires
- Les solutions de Go (routines, channel)
- Multiplexage de channel (select)
- Les tests
Atelier:
- Mise en oeuvre avec un compteur de requêtes
Module 11: Accès aux données
- Architecture des couches d’accès aux données
- Description du modèle de données
- Interface, DAO et Factory
- Les tests avec Mock
Ateliers:
- Compléter la couche “modèle” de l’application du projet
- Compléter la factory, l’implémentation Mock
- Implementations MongoDB ou PostgreSQL
Module 12: Service Web
- Les package web de Go : natif et bibliothèques
- Architecture en couche du web
- Les middlewares
- Routage et Endpoints
- Les tests Web
Atelier:
- Compléter le package “web” de l’application du projet
Module 13: Build et déploiement
- Dockerfile d’un programme Go
- Lancer son programme et sa base de données (compose)
- Tester son service
Nos sessions de formations
Ce cours vous intéresse ?
Demandez un devis
personnalisée ? Contactez-nous