Formation Go Avancé

Formation Go Avancé

Notée : (80)*

Approfondissez vos connaissances avec le langage Go : apprenez à bien tester votre code, à améliorer les performances et sécuriser vos applications lors de cette formation Go Avancé.

Prix (Formation inter-entreprise)

1900€ HT / personne

Durée

3 jours

Dates

Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)

Cette formation Go Avancé s'adresse à toute personne, développeur·se, chercheur·e, ingénieur·e... souhaitant approfondir son utilisation du langage Go.

Go séduit de plus en plus de monde par sa simplicité, ses fonctionnalités de concurrence natives, sa polyvalence, sa stabilité, sa performance, etc. Il serait dommage de ne pas tirer parti de tout ce que le langage et son écosystème a à offrir ! (La formation vient d'être mise à jour pour Go 1.18)

Durant ces trois jours de formation, vous apprendrez des techniques visant à améliorer votre code en termes d'exactitude, de maintenabilité, de testabilité, de performance et de sécurité.

Cette formation sera entrecoupée de travaux pratiques concrets visant à assimiler chaque nouvelle notion rencontrée.

À l'issue de cette formation Go Avancé, vous repartirez avec le code source du projet développé lors de ces trois jours, ainsi que la solution du formateur (sur GitHub).

Si vous débutez avec le langage de programmation Go ou souhaitez revoir les bases, jetez un oeil à la formation Go !

Les objectifs

  • Approfondir ses connaissances du langage Go et de son écosystème
  • Assimiler les bonnes pratiques de qualité logicielle en Go
  • Maîtriser les patterns de concurrence utiles

Pré-requis

  • Avoir une bonne connaissance des fondamentaux du langage Go et de son écosystème
  • Avoir une expérience régulière d'au moins trois mois avec Go
  • Avoir les bases en anglais technique
  • Ordinateur portable à apporter

Le programme de la formation Go Avancé

Jour 1 : Exactitude et maintenabilité

Bonne pratiques générales
  • Optimisez votre code pour la lecture
  • Evitez les packages unsafe et reflect
  • Encapsulez vos types proprement
  • Distinguez types métier et data-transfer objects (DTOs)
  • Rendez la valeur vierge directement utilisable
  • Evitez les littéraux de structs sans clés
  • Evitez les variables globales
  • Functional options

Mises en pratique : de multiples exercices sur les différents thèmes abordés

Documentation et tests
  • Documentation de packages ; exemples exécutables
  • Table de tests
  • Injection de dépendances
  • Mocking/stubbing : adaptateur pour interface à une seule méthode

Mises en pratique :
- Documentation d'un package existant
- Ecriture d'un exemple exécutable
- Utilisation d'un stub du client HTTP dans des tests unitaires

Gestion avancée d'erreurs
  • Les écueils à éviter
  • Au delà de l'idiome if err != nil
  • Déclaration de types d'erreurs personnalisés
  • Le package errors
  • Enrobage d'erreurs et inspection de la chaîne d'erreurs

Mises en pratique :
- Déclaration d'un type erreur haut niveau
- Inspection de la chaîne d'erreurs

Packages
  • Utilisation de packages internes
  • Conseils pour éviter les cycles de dépendances
  • Modularisation judicieuse du code en packages
  • Quelques pistes pour faire du Domain-Driven Design en Go

Mises en pratique : addition d'un package interne à un projet existant

Génériques (nouveau en Go 1.18)
  • Qu'est-ce que les génériques ?
  • L'intérêt des génériques
  • Types et fonctions génériques
  • Contraintes de types
  • Contraintes pré-déclarées : any et comparable
  • Le package contraints
  • Restriction en relation aux méthodes
  • Contraintes de types récursifs
  • Ecueils à éviter

Mises en pratique : implémentation d'un arbre binaire générique

Jour 2 : Concurrence avancée

Rappels sur la concurrence
  • Goroutines
  • Channels
  • Le mot-clé select
  • Subtilités du modèle mémoire de Go
  • Situations de compétition
  • Fuite de goroutines

Mises en pratique : identification et débogage d'une situation de compétition

Contextes
  • Goroutines annulables
  • Le type context.Context
  • Trois façons de détecter l'annulation d'un contexte
  • Dérivation de contextes
  • Contextes remarquables : context.Background() et context.TODO()
  • Arbre des contextes
  • Contextes et APIs de packages
  • Un type déchiré entre deux objectifs distincts
  • Stocker et récupérer des valeurs avec context.Context
  • Bonnes et mauvaises pratiques

Mises en pratique :
- Rendre une goroutine annulable
- Débogage d'une simple simulation de ping-pong
- Annulation d'une requête côté client
- Annulation des tâches liées à une requête côté serveur

Patterns de concurrences
  • Evitez time.Tick and time.After
  • Laissez à l'appelant le choix du pattern de concurrence
  • Ne présupposez pas qu'un type est concurrency-safe
  • Le pattern fan-out et ses limitations
  • Pool of workers
  • Sémaphores
  • Délestage (load shedding)
  • Requêtes redondantes
  • Requêtes de secours (hedged requests)
  • Slices et concurrency safety
  • Exécution unique avec sync.Once

Mises en pratique : de multiples exercices sur chaque pattern de concurrence abordé

Jour 3 : Performance et sécurité

Macro-optimisation
  • Profilage de code avec pprof
  • Le package net/http/pprof
  • Traceur d'exécution
  • Réglage du ramasse-miettes

Mises en pratique :
- Identification des goulets d'étranglement et optimisation d'un utilitaire avec pprof
- Optimisation de la concurrence d'un utilitaire grâce au traceur d'exécution

Micro-optimisation
  • Contraintes d'alignement mémoire et remplissage
  • Optimisation de l'empreinte mémoire des structures
  • Micro-benchmarks
  • Subtilités du ramasse-miettes
  • Escape analysis et réduction de la pression sur la pile
  • Réduction de la taille des exécutables

Mises en pratique : de multiples exercices sur les différents thèmes abordés

Bonnes pratiques de sécurité
  • Go : un langage et écosystème sécurisant
  • Bonnes et mauvaises pratiques de déclaration d'énumérations
  • Intégrité des dépendances
  • Bornez le degré de concurrence
  • Situations de compétition et leurs dangers

Mises en pratique : de multiples exercices sur les différents thèmes abordés

Analyse statique et dynamique de code
  • semgrep
  • gosec
  • Fuzzing (nouveau en Go 1.18)

Mises en pratique : de multiples exercices sur les différents thèmes abordés

Sécurité Web
  • Templates
  • N'exposez pas vos endpoints pprof
  • Configuration judicieuse des clients et serveurs HTTP
  • Risques liés au content-type sniffing
  • Messages d'erreurs verbeux
  • Path traversal
  • Configuration judicieuse des CORS
  • Problèmes d'inter-opérabilité JSON

Mises en pratique :
- identification, exploitation et résolution des failles de sécurité évoquées
- études de cas

Discussion ouverte

Télécharger le programme

Le(s) formateur(s)

Julien CRETEL

Julien CRETEL

Julien est à la fois développeur, chercheur en sécurité Web et formateur.

Son langage de prédilection est le Go, sujet sur lequel il a formé des centaines de professionnel·le·s depuis 2019. Il lui arrive aussi d'intervenir sur Go à l'occasion de conférences spécialisées, telles que GopherCon 2023 Europe.

Julien est actif dans le domaine de la sécurité Web. En marge des tests de sécurité (tests d'intrusion, évaluation de vulnérabilité, audit de codes, etc.) que ses clients lui confient et de ses activités de recherche indépendante, Julien forme régulièrement des professionnel·le·s sur la sécurité Web. Il s'adonne aussi, de temps à autre, à la chasse au bogues de sécurité (bug bounty hunting).

Julien partage ses réflexions et sa recherche sur son blog, qui est, sans surprises, principalement dédié au langage Go et à la sécurité Web.

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 103 formations au catalogue, 1466 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

14 témoignages

C'était une formation très intéressante et enrichissante qui balaie plusieurs aspects avancés de Go. Les exercices aident beaucoup à la compré...

C'était une formation très intéressante et enrichissante qui balaie plusieurs aspects avancés de Go. Les exercices aident beaucoup à la compréhension des thèmes abordés et permettent de voir des cas concrets. Le formateur est très pédagogue. Je conseille vivement, peu importe le niveau (base ou avancé).

Voir plus

Superbe formateur qui propose une superbe formation. Cette dernière est très complète. Le rythme permet d'appréhender un maximum de concepts t...

Superbe formateur qui propose une superbe formation. Cette dernière est très complète. Le rythme permet d'appréhender un maximum de concepts tout en revenant sur des choses plus basiques quand le besoin se fait sentir. Julien est à l'écoute de la moindre question, et nous offre son expérience, ses connaissances ou son avis sur chacun des sujets abordés. Vous en ressortirez grandis avec les connaissances et la motivation pour mettre un code Go plus propre, plus performant ou plus idiomatique en prod.

Voir plus

Formation très intéressante Bon accompagnement du formateur Julien, sur les exercices, la compréhension du contenu. Le tout avec une bonne ...

Formation très intéressante Bon accompagnement du formateur Julien, sur les exercices, la compréhension du contenu. Le tout avec une bonne ouverture d'esprit quand aux questions et remarques. Le rythme est soutenu, et pourtant digeste. Je recommande !

Voir plus

Très bonne formation. Permet d'aborder ou de recevoir les principes qui sont au coeur du langage Go. Julien est un très bon formateur avec une...

Très bonne formation. Permet d'aborder ou de recevoir les principes qui sont au coeur du langage Go. Julien est un très bon formateur avec une excellente pédagogie. Les échanges avec lui et les autres personnes présentes lors de la formation étaient très intéressants.

Voir plus

Super ! Julien est très compétent et pédagogue. Énormément de pratiques et d'outils à appliquer tout de suite à l'issue de la formation.

Super ! Julien est très compétent et pédagogue. Énormément de pratiques et d'outils à appliquer tout de suite à l'issue de la formation.

Formation d'excellente qualité avec un formateur compétent, pédagogue et très agréable qui s'est parfaitement adapté au public de la formation.

Formation d'excellente qualité avec un formateur compétent, pédagogue et très agréable qui s'est parfaitement adapté au public de la formation.

Amazing training! I love the practical examples illustrating a relevant theoretical course. The program is rich, complete and up-to-date (like...

Amazing training! I love the practical examples illustrating a relevant theoretical course. The program is rich, complete and up-to-date (like generics), with metaphors and warnings about common pitfalls. The pace is perfect. An excellent addition to the books. Eager to apply all the knowledge seen during this training!

Voir plus

In summary it was preatty good training. Full of good materials. I really appreciate trainer's knowledge and experience.

In summary it was preatty good training. Full of good materials. I really appreciate trainer's knowledge and experience.

Très bonne formation, Julien connaît son sujet et répond à toutes les questions sans problèmes. :)

Très bonne formation, Julien connaît son sujet et répond à toutes les questions sans problèmes. :)

Très bonne formation enrichissante

Très bonne formation enrichissante

Selon les préférences de chacun, cette formation peut-être perçue comme du "go intermédiaire" et/ou du "go avancé". Formation plutôt complète...

Selon les préférences de chacun, cette formation peut-être perçue comme du "go intermédiaire" et/ou du "go avancé". Formation plutôt complète sans être exhaustive (impossible d'être exhaustif en seulement 3 jours si l'on veut que les informations soient retenues).

Voir plus

Programme très intéressant.

Programme très intéressant.

j'ai apprécié les points abordés, qui correspondent a des besoins réels.

j'ai apprécié les points abordés, qui correspondent a des besoins réels.

Un très bon tour d'horizon de ce qui existe en go. L'alternance entre concepts, explications, exercices et optimisation rend cette formation t...

Un très bon tour d'horizon de ce qui existe en go. L'alternance entre concepts, explications, exercices et optimisation rend cette formation très bien rythmée.

Voir plus

Besoin d'aide ?

Vous souhaitez discuter avec nous à propos de votre projet de formation ?
Vous voulez plus d'information sur une formation ou notre fonctionnement ?


Rappel Email

Nos forces

  • Des formations à taille humaine
  • Des formateurs passionnés
  • Des véritables workshop
Accéder au Manifeste

Nos clients

Formation Go Avancé

Notée : (80)*

Approfondissez vos connaissances avec le langage Go : apprenez à bien tester votre code, à améliorer les performances et sécuriser vos applications lors de cette formation Go Avancé.

Formation Go Avancé

Cette formation Go Avancé s'adresse à toute personne, développeur·se, chercheur·e, ingénieur·e... souhaitant approfondir son utilisation du langage Go.

Go séduit de plus en plus de monde par sa simplicité, ses fonctionnalités de concurrence natives, sa polyvalence, sa stabilité, sa performance, etc. Il serait dommage de ne pas tirer parti de tout ce que le langage et son écosystème a à offrir ! (La formation vient d'être mise à jour pour Go 1.18)

Durant ces trois jours de formation, vous apprendrez des techniques visant à améliorer votre code en termes d'exactitude, de maintenabilité, de testabilité, de performance et de sécurité.

Cette formation sera entrecoupée de travaux pratiques concrets visant à assimiler chaque nouvelle notion rencontrée.

À l'issue de cette formation Go Avancé, vous repartirez avec le code source du projet développé lors de ces trois jours, ainsi que la solution du formateur (sur GitHub).

Si vous débutez avec le langage de programmation Go ou souhaitez revoir les bases, jetez un oeil à la formation Go !

Les objectifs

  • Approfondir ses connaissances du langage Go et de son écosystème
  • Assimiler les bonnes pratiques de qualité logicielle en Go
  • Maîtriser les patterns de concurrence utiles

Pré-requis

  • Avoir une bonne connaissance des fondamentaux du langage Go et de son écosystème
  • Avoir une expérience régulière d'au moins trois mois avec Go
  • Avoir les bases en anglais technique
  • Ordinateur portable à apporter

Le programme de la formation Go Avancé

Jour 1 : Exactitude et maintenabilité

Bonne pratiques générales
  • Optimisez votre code pour la lecture
  • Evitez les packages unsafe et reflect
  • Encapsulez vos types proprement
  • Distinguez types métier et data-transfer objects (DTOs)
  • Rendez la valeur vierge directement utilisable
  • Evitez les littéraux de structs sans clés
  • Evitez les variables globales
  • Functional options

Mises en pratique : de multiples exercices sur les différents thèmes abordés

Documentation et tests
  • Documentation de packages ; exemples exécutables
  • Table de tests
  • Injection de dépendances
  • Mocking/stubbing : adaptateur pour interface à une seule méthode

Mises en pratique :
- Documentation d'un package existant
- Ecriture d'un exemple exécutable
- Utilisation d'un stub du client HTTP dans des tests unitaires

Gestion avancée d'erreurs
  • Les écueils à éviter
  • Au delà de l'idiome if err != nil
  • Déclaration de types d'erreurs personnalisés
  • Le package errors
  • Enrobage d'erreurs et inspection de la chaîne d'erreurs

Mises en pratique :
- Déclaration d'un type erreur haut niveau
- Inspection de la chaîne d'erreurs

Packages
  • Utilisation de packages internes
  • Conseils pour éviter les cycles de dépendances
  • Modularisation judicieuse du code en packages
  • Quelques pistes pour faire du Domain-Driven Design en Go

Mises en pratique : addition d'un package interne à un projet existant

Génériques (nouveau en Go 1.18)
  • Qu'est-ce que les génériques ?
  • L'intérêt des génériques
  • Types et fonctions génériques
  • Contraintes de types
  • Contraintes pré-déclarées : any et comparable
  • Le package contraints
  • Restriction en relation aux méthodes
  • Contraintes de types récursifs
  • Ecueils à éviter

Mises en pratique : implémentation d'un arbre binaire générique

Jour 2 : Concurrence avancée

Rappels sur la concurrence
  • Goroutines
  • Channels
  • Le mot-clé select
  • Subtilités du modèle mémoire de Go
  • Situations de compétition
  • Fuite de goroutines

Mises en pratique : identification et débogage d'une situation de compétition

Contextes
  • Goroutines annulables
  • Le type context.Context
  • Trois façons de détecter l'annulation d'un contexte
  • Dérivation de contextes
  • Contextes remarquables : context.Background() et context.TODO()
  • Arbre des contextes
  • Contextes et APIs de packages
  • Un type déchiré entre deux objectifs distincts
  • Stocker et récupérer des valeurs avec context.Context
  • Bonnes et mauvaises pratiques

Mises en pratique :
- Rendre une goroutine annulable
- Débogage d'une simple simulation de ping-pong
- Annulation d'une requête côté client
- Annulation des tâches liées à une requête côté serveur

Patterns de concurrences
  • Evitez time.Tick and time.After
  • Laissez à l'appelant le choix du pattern de concurrence
  • Ne présupposez pas qu'un type est concurrency-safe
  • Le pattern fan-out et ses limitations
  • Pool of workers
  • Sémaphores
  • Délestage (load shedding)
  • Requêtes redondantes
  • Requêtes de secours (hedged requests)
  • Slices et concurrency safety
  • Exécution unique avec sync.Once

Mises en pratique : de multiples exercices sur chaque pattern de concurrence abordé

Jour 3 : Performance et sécurité

Macro-optimisation
  • Profilage de code avec pprof
  • Le package net/http/pprof
  • Traceur d'exécution
  • Réglage du ramasse-miettes

Mises en pratique :
- Identification des goulets d'étranglement et optimisation d'un utilitaire avec pprof
- Optimisation de la concurrence d'un utilitaire grâce au traceur d'exécution

Micro-optimisation
  • Contraintes d'alignement mémoire et remplissage
  • Optimisation de l'empreinte mémoire des structures
  • Micro-benchmarks
  • Subtilités du ramasse-miettes
  • Escape analysis et réduction de la pression sur la pile
  • Réduction de la taille des exécutables

Mises en pratique : de multiples exercices sur les différents thèmes abordés

Bonnes pratiques de sécurité
  • Go : un langage et écosystème sécurisant
  • Bonnes et mauvaises pratiques de déclaration d'énumérations
  • Intégrité des dépendances
  • Bornez le degré de concurrence
  • Situations de compétition et leurs dangers

Mises en pratique : de multiples exercices sur les différents thèmes abordés

Analyse statique et dynamique de code
  • semgrep
  • gosec
  • Fuzzing (nouveau en Go 1.18)

Mises en pratique : de multiples exercices sur les différents thèmes abordés

Sécurité Web
  • Templates
  • N'exposez pas vos endpoints pprof
  • Configuration judicieuse des clients et serveurs HTTP
  • Risques liés au content-type sniffing
  • Messages d'erreurs verbeux
  • Path traversal
  • Configuration judicieuse des CORS
  • Problèmes d'inter-opérabilité JSON

Mises en pratique :
- identification, exploitation et résolution des failles de sécurité évoquées
- études de cas

Discussion ouverte

Télécharger le programme

Le(s) formateur(s)

Julien CRETEL

Julien CRETEL

Julien est à la fois développeur, chercheur en sécurité Web et formateur.

Son langage de prédilection est le Go, sujet sur lequel il a formé des centaines de professionnel·le·s depuis 2019. Il lui arrive aussi d'intervenir sur Go à l'occasion de conférences spécialisées, telles que GopherCon 2023 Europe.

Julien est actif dans le domaine de la sécurité Web. En marge des tests de sécurité (tests d'intrusion, évaluation de vulnérabilité, audit de codes, etc.) que ses clients lui confient et de ses activités de recherche indépendante, Julien forme régulièrement des professionnel·le·s sur la sécurité Web. Il s'adonne aussi, de temps à autre, à la chasse au bogues de sécurité (bug bounty hunting).

Julien partage ses réflexions et sa recherche sur son blog, qui est, sans surprises, principalement dédié au langage Go et à la sécurité Web.

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 103 formations au catalogue, 1466 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

14 témoignages

C'était une formation très intéressante et enrichissante qui balaie plusieurs aspects avancés de Go. Les exercices aident beaucoup à la compré...

C'était une formation très intéressante et enrichissante qui balaie plusieurs aspects avancés de Go. Les exercices aident beaucoup à la compréhension des thèmes abordés et permettent de voir des cas concrets. Le formateur est très pédagogue. Je conseille vivement, peu importe le niveau (base ou avancé).

Voir plus

Superbe formateur qui propose une superbe formation. Cette dernière est très complète. Le rythme permet d'appréhender un maximum de concepts t...

Superbe formateur qui propose une superbe formation. Cette dernière est très complète. Le rythme permet d'appréhender un maximum de concepts tout en revenant sur des choses plus basiques quand le besoin se fait sentir. Julien est à l'écoute de la moindre question, et nous offre son expérience, ses connaissances ou son avis sur chacun des sujets abordés. Vous en ressortirez grandis avec les connaissances et la motivation pour mettre un code Go plus propre, plus performant ou plus idiomatique en prod.

Voir plus

Formation très intéressante Bon accompagnement du formateur Julien, sur les exercices, la compréhension du contenu. Le tout avec une bonne ...

Formation très intéressante Bon accompagnement du formateur Julien, sur les exercices, la compréhension du contenu. Le tout avec une bonne ouverture d'esprit quand aux questions et remarques. Le rythme est soutenu, et pourtant digeste. Je recommande !

Voir plus

Très bonne formation. Permet d'aborder ou de recevoir les principes qui sont au coeur du langage Go. Julien est un très bon formateur avec une...

Très bonne formation. Permet d'aborder ou de recevoir les principes qui sont au coeur du langage Go. Julien est un très bon formateur avec une excellente pédagogie. Les échanges avec lui et les autres personnes présentes lors de la formation étaient très intéressants.

Voir plus

Super ! Julien est très compétent et pédagogue. Énormément de pratiques et d'outils à appliquer tout de suite à l'issue de la formation.

Super ! Julien est très compétent et pédagogue. Énormément de pratiques et d'outils à appliquer tout de suite à l'issue de la formation.

Formation d'excellente qualité avec un formateur compétent, pédagogue et très agréable qui s'est parfaitement adapté au public de la formation.

Formation d'excellente qualité avec un formateur compétent, pédagogue et très agréable qui s'est parfaitement adapté au public de la formation.

Amazing training! I love the practical examples illustrating a relevant theoretical course. The program is rich, complete and up-to-date (like...

Amazing training! I love the practical examples illustrating a relevant theoretical course. The program is rich, complete and up-to-date (like generics), with metaphors and warnings about common pitfalls. The pace is perfect. An excellent addition to the books. Eager to apply all the knowledge seen during this training!

Voir plus

In summary it was preatty good training. Full of good materials. I really appreciate trainer's knowledge and experience.

In summary it was preatty good training. Full of good materials. I really appreciate trainer's knowledge and experience.

Très bonne formation, Julien connaît son sujet et répond à toutes les questions sans problèmes. :)

Très bonne formation, Julien connaît son sujet et répond à toutes les questions sans problèmes. :)

Très bonne formation enrichissante

Très bonne formation enrichissante

Selon les préférences de chacun, cette formation peut-être perçue comme du "go intermédiaire" et/ou du "go avancé". Formation plutôt complète...

Selon les préférences de chacun, cette formation peut-être perçue comme du "go intermédiaire" et/ou du "go avancé". Formation plutôt complète sans être exhaustive (impossible d'être exhaustif en seulement 3 jours si l'on veut que les informations soient retenues).

Voir plus

Programme très intéressant.

Programme très intéressant.

j'ai apprécié les points abordés, qui correspondent a des besoins réels.

j'ai apprécié les points abordés, qui correspondent a des besoins réels.

Un très bon tour d'horizon de ce qui existe en go. L'alternance entre concepts, explications, exercices et optimisation rend cette formation t...

Un très bon tour d'horizon de ce qui existe en go. L'alternance entre concepts, explications, exercices et optimisation rend cette formation très bien rythmée.

Voir plus

* Nombre de personnes ayant répondu au questionnaire de satisfaction sur cette formation depuis 2012