Le langage Go | Formation complète
- Objectifs pédagogiques
- Sections du cours
- Avis
Go est un langage open-source créé par Google. Sa popularité est en explosion, il est maintenant dans le top 20 des langages les plus populaires du classement TIOBE. De plus, Go est encore jeune, c’est le bon moment pour vous y mettre !
Ce cours s’adresse autant aux débutants en programmation qu’à ceux qui ont déjà une expérience dans un autre langage (Java, C#, Python ou Ruby). A la fin du cours, vous serez capable de réaliser des projets Go complets.
Go est un langage à la fois abordable et puissant. Avec lui, vous pourrez aussi bien faire des outils simples (traitement de fichiers, compression zip, etc. ) que des applications web performantes (génération de miniatures, API REST, etc).
Qui utilise Go ?
Go est né en 2009, et en moins de 10 ans a déjà conquis le monde. Grâce à son accent sur la performance et la facilité de développement, on le trouve chez de grands noms comme :
- Google (of course !)
- Netflix
- GitHub
- Uber
- Molotov TV
- LeBonCoin
Structure du cours
Grâce aux quizz et aux exercices, vous serez capable de maîtriser toutes les spécificités de Go. Voici quelques exemples de projets que nous ferons ensemble :
- Un outils de remplacement de mots dans des fichiers ;
- Le jeu du pendu en console incluant des tests unitaires pour vérifier la logique de jeu ;
- Un dictionnaire stockant ses définitions en base de données ;
- Un générateur de certificats de réussite qui produit des PDFs et du HTML.
- Un logiciel de filtre massif d’images, qui converti en noir et blanc ou applique un flou tout en divisant par 4 le temps de traitement grâce aux Goroutines ;
- Un serveur web proposant une API HTTP Rest pour un catalogue de film avec authentification JWT
Pour réaliser ces applications, nous allons aborder tous les aspects importants du langage :
- La syntaxe de base du Go, déclaration des variables, contrôles de flux (if, for, etc.) ;
- Les différences de Go avec d’autres langages (Java, Python, etc.) ;
- L’organisation du code en package ;
- L’utilisation de bibliothèques externes ;
- Les Goroutines et les Channels pour paralléliser vos traitements ;
- Les requêtes HTTP GET / POST avec du contenu JSON ;
- Le routing pour créer un serveur web performant ;
- Les interactions base de données en SQL ;
- La sécurisation d’API avec JWT.
Je compte ajouter encore beaucoup de contenu dans ce cours, attendez-vous à recevoir des mise à jour régulières. Rejoignez moi et maitrisez le Go pour répondre à la demande croissante sur cette technologie !
-
15Déclaration de variablesLeçon vidéo
-
16Visibilité des variablesLeçon vidéo
-
17Quiz : les variablesQuiz
-
18Contrôle de flux : if / elseLeçon vidéo
-
19Contrôle de flux : switchLeçon vidéo
-
20Conversion de typeLeçon vidéo
-
21Les fonctionsLeçon vidéo
-
22Retour de fonction multipleLeçon vidéo
-
23Quiz : les fonctionsQuiz
-
24ArrayLeçon vidéo
-
25SlicesLeçon vidéo
-
26Quiz : Array et SlicesQuiz
-
27Contrôle de flux : boucle forLeçon vidéo
-
28RangeLeçon vidéo
-
29Gestion d'erreur en GoLeçon vidéo
-
30Gestion d'erreur dans un fichierLeçon vidéo
-
31deferLeçon vidéo
-
32Quiz - for, err, deferQuiz
-
33Exercice : Goplace - Find / Replace de fichiersLeçon vidéo
-
34Corrigé : Goplace - Find / Replace de fichiers 1/3Leçon vidéo
-
35Corrigé : Goplace - Find / Replace de fichiers 2/3Leçon vidéo
-
36Corrigé : Goplace - Find / Replace de fichiers 3/3Leçon vidéo
-
37Sources Projet GoplaceLeçon de texte
-
46Structure du jeu du penduLeçon vidéo
-
47Définition d'un GameLeçon vidéo
-
48Récupérer la saise utilisateurLeçon vidéo
-
49Dessiner l'état de la partieLeçon vidéo
-
50Deviner une lettreLeçon vidéo
-
51Exercice : se tromper de lettreLeçon vidéo
-
52Corrigé : se tromper de lettreLeçon vidéo
-
53Charger un dictionnaire de motsLeçon vidéo
-
54Tests en GoLeçon vidéo
-
55Tester le jeu du penduLeçon vidéo
-
56Exercice : tester les états de jeuLeçon vidéo
-
57Corrigé : tester les états de jeuLeçon vidéo
-
58Aller plus loinLeçon vidéo
-
59Sources Projet HangmanLeçon de texte
-
65Structure du projet DictionnaireLeçon vidéo
-
66Ajouter une dépendance externe : BadgerLeçon vidéo
-
67Définition des StructsLeçon vidéo
-
68Création et fermeture de la BDDLeçon vidéo
ATTENTION : La bibliothèque Badget a été mise à jour depuis l'enregistrement de cette vidéo. La récupération des options se dorénavant fait de la manière suivante :
opts := badger.DefaultOptions("./badger")
Merci Thomas S. pour m'avoir remonter l'information !
-
69Ajouter un mot dans le dictionaireLeçon vidéo
-
70Lire un mot dans le dictionnaireLeçon vidéo
-
71Lister les mots du dictionnaireLeçon vidéo
Une erreur s'est glissée dans la fonction sortedKeys(), qui affiche des valeurs fantômes. Voici la version corrigée (désolé pour le formatage, impossible de le changer ici) :
func sortedKeys(entries map[string]Entry) []string {
keys := make([]string, len(entries))
i := 0
for key := range entries {
keys[i] = key
i++
}
sort.Strings(keys)
return keys
}
Merci à Jean-Baptiste D. et Sébastien F. pour leur attention !
-
72Exercice : Supprimer un mot du dictionnaireLeçon vidéo
-
73Corrigé : Supprimer un mot du dictionnaireLeçon vidéo
-
74Gérer des arguments CLILeçon vidéo
-
75Action de listeLeçon vidéo
-
76Action d'ajout d'un motLeçon vidéo
-
77Exercice : action de définition et suppressionLeçon vidéo
-
78Corrigé : action de définition et suppressionLeçon vidéo
-
79Aller plus loinLeçon vidéo
-
80Sources Projet DictionaryLeçon de texte
-
81Interêt d'un interfaceLeçon vidéo
-
82Définition d'une InterfaceLeçon vidéo
-
83Règles d'une interfaceLeçon vidéo
-
84Quiz : interfacesQuiz
-
85Comportement en fonction du typeLeçon vidéo
-
86Empty interfaceLeçon vidéo
-
87Quiz : manipuler les interfacesQuiz
-
88Reader et WriterLeçon vidéo
-
89Reader de fichier et de requête HTTPLeçon vidéo