Le langage Go | Formation complète
- Description
- Programme
- Commentaires
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 !
-
7IntroductionVideo lesson
-
8Le premier programme : Hello WorldVideo lesson
-
9Exécuter Hello WorldVideo lesson
-
10Les packagesVideo lesson
-
11Les importsVideo lesson
-
12Organisation des fichiersVideo lesson
-
13Tester rapidement avec Go PlaygroundVideo lesson
-
14Explorer la documentationVideo lesson
-
15Déclaration de variablesVideo lesson
-
16Visibilité des variablesVideo lesson
-
17Quiz : les variablesQuiz
-
18Contrôle de flux : if / elseVideo lesson
-
19Contrôle de flux : switchVideo lesson
-
20Conversion de typeVideo lesson
-
21Les fonctionsVideo lesson
-
22Retour de fonction multipleVideo lesson
-
23Quiz : les fonctionsQuiz
-
24ArrayVideo lesson
-
25SlicesVideo lesson
-
26Quiz : Array et SlicesQuiz
-
27Contrôle de flux : boucle forVideo lesson
-
28RangeVideo lesson
-
29Gestion d'erreur en GoVideo lesson
-
30Gestion d'erreur dans un fichierVideo lesson
-
31deferVideo lesson
-
32Quiz - for, err, deferQuiz
-
33Exercice : Goplace - Find / Replace de fichiersVideo lesson
-
34Corrigé : Goplace - Find / Replace de fichiers 1/3Video lesson
-
35Corrigé : Goplace - Find / Replace de fichiers 2/3Video lesson
-
36Corrigé : Goplace - Find / Replace de fichiers 3/3Video lesson
-
37Sources Projet GoplaceText lesson
-
46Structure du jeu du penduVideo lesson
-
47Définition d'un GameVideo lesson
-
48Récupérer la saise utilisateurVideo lesson
-
49Dessiner l'état de la partieVideo lesson
-
50Deviner une lettreVideo lesson
-
51Exercice : se tromper de lettreVideo lesson
-
52Corrigé : se tromper de lettreVideo lesson
-
53Charger un dictionnaire de motsVideo lesson
-
54Tests en GoVideo lesson
-
55Tester le jeu du penduVideo lesson
-
56Exercice : tester les états de jeuVideo lesson
-
57Corrigé : tester les états de jeuVideo lesson
-
58Aller plus loinVideo lesson
-
59Sources Projet HangmanText lesson
-
65Structure du projet DictionnaireVideo lesson
-
66Ajouter une dépendance externe : BadgerVideo lesson
-
67Définition des StructsVideo lesson
-
68Création et fermeture de la BDDVideo lesson
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 dictionaireVideo lesson
-
70Lire un mot dans le dictionnaireVideo lesson
-
71Lister les mots du dictionnaireVideo lesson
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 dictionnaireVideo lesson
-
73Corrigé : Supprimer un mot du dictionnaireVideo lesson
-
74Gérer des arguments CLIVideo lesson
-
75Action de listeVideo lesson
-
76Action d'ajout d'un motVideo lesson
-
77Exercice : action de définition et suppressionVideo lesson
-
78Corrigé : action de définition et suppressionVideo lesson
-
79Aller plus loinVideo lesson
-
80Sources Projet DictionaryText lesson
-
81Interêt d'un interfaceVideo lesson
-
82Définition d'une InterfaceVideo lesson
-
83Règles d'une interfaceVideo lesson
-
84Quiz : interfacesQuiz
-
85Comportement en fonction du typeVideo lesson
-
86Empty interfaceVideo lesson
-
87Quiz : manipuler les interfacesQuiz
-
88Reader et WriterVideo lesson
-
89Reader de fichier et de requête HTTPVideo lesson
![6788](https://academiaraqmya.gov.ma/wp-content/uploads/2021/04/2059223_315c.jpg)