15 - Concurrency and Channels

Les channels permettent de créer, connecter, synchroniser et faire communiquer les différentes goroutines. Vous allez apprendre à créer, envoyer, recevoir vos channels et à gérer les différents cas d’erreurs des channels dans le langage de programmation GO.

14 - Goroutines & sync.WaitGroup

Goroutines Les goroutines sont des fonctions qui s’exécutent en concurrence avec d’autres et dans le même espace d’adresse. Elles permettent, par exemple, de lancer plusieurs requêtes HTTP en concurrence et de ne pas avoir à attendre qu’une requête HTTP se termine pour en lancer une autre.

13 - Client HTTP basique

Un client HTTP est un logiciel conçu pour se connecter à un serveur HTTP (Hypertext Transfer Protocol). Dans le cas le plus courant, il s’agit d’un navigateur web. Les autres clients sont généralement des programmes automatisant des transferts. Par exemple un robot d’indexation permet à un moteur de recherche d’explorer le contenu des sites web.

12 - Serialisation et Deserialisation JSON

En informatique, la sérialisation (de l’anglais américain serialization) est le codage d’une information sous la forme d’une suite d’informations plus petites (dites atomiques, voir l’étymologie de atome) pour, par exemple, sa sauvegarde (persistance) ou son transport sur le réseau (proxy, RPC…).

11 - Defer, Panic & Recover

Go a les mécanismes habituels de contrôle du flux: if, for, switch, goto. Il a également l’instruction go pour exécuter le code dans un goroutine distinct. Ici, je voudrais discuter de certains des moins courants: defer, panic & recover C’est ce que nous allons voir dans la vidéo suivante en donnant des exemples clairs pour chaque fonction citée :

10 - Les modules et packages

Définition Jusqu’ici nous n’avons écrit notre code que dans un seul fichier, pour l’instant c’était tolérable car la taille de note code était petite, mais plus votre code va grandir plus vous allez vite vous rendre compte qu’il est nécessaire de déplacer des portions de votre code dans d’autres fichiers afin de mieux organiser et maintenir votre programme, et c’est là qu’interviennent les packages !

09 - Les fonctions en Go

Les fonctions vont nous permettre de structurer nos programmes en un groupe d’instructions qui effectueront un ensemble de tâches. Elles permettent de simplifier notre code et de le rendre beaucoup plus lisible que ce soit pour nous ou pour les autres, mais surtout elles nous permettront de ne pas retaper le même code plusieurs fois d’affilée.

08 - Les interfaces et le polymorphisme en Go

Bien qu’en Go, la notion de programmation orientée objet soit assez limitée (pas de réel héritage, pas de vraie encapsulation, …), il est possible de manière assez simple de créer des interfaces et de les implémenter. Cela permet entre autres de manipuler indifféremment des objets de divers types, ou encore d’assurer un contrat pour un type donné : on assure que ce dernier dispose des méthodes requises.

07 - Structs, Embedded Structs & function receiver

Le code source écrit pendant l’épisode: package main type todo struct { text string done bool } // function with receiver // func (receiver) identifier(args) (returns) func (t *todo) toggle() { t.done = !t.done } type user struct { name string todos []*todo } func (u user) show() { fmt.

06 - Structs et méthodes

Le code source développé dans cet épisode : package main type todo struct { text string done bool } // function with receiver // func (receiver) identifier(args) (returns) func (t *todo) toggle() { t.done = !t.done } type user struct { name string todos []todo } func (u *user) addTodo(t todo) { u.