Contactez-nous

Go beyond : maîtrisez Go pour l'innovation cloud, IA et DevOps

Maîtrisez Go et propulsez votre carrière ! Devenez expert Cloud, IA et DevOps avec notre guide de référence ultime. Formation pédagogique et complète pour la préparation à la certification et innover avec Go.

Table des matières

  1. Introduction et fondamentaux
    1. Introduction à Go
      1. Histoire et philosophie de Go
      2. Avantages et cas d'utilisation
      3. Comparaison avec d'autres langages
      4. Ecosystème Go et outils principaux
    2. Installation et configuration
      1. Installation sur différents systèmes d'exploitation
      2. Configuration de l'environnement de développement
      3. Outils essentiels (go command, gofmt, golint, etc.)
      4. Premier programme "Hello, World!"
  2. Les fondamentaux de Go
    1. Syntaxe et types de base
      1. Structure d'un programme Go
      2. Types de base (int, float, bool, string)
      3. Variables, constantes et déclarations
      4. Opérateurs et expressions
    2. Structures de contrôle
      1. Conditions (if, else, switch)
      2. Boucles (for, range)
      3. Defer, panic et recover
    3. Fonctions et méthodes
      1. Déclaration et appel de fonctions
      2. Paramètres et valeurs de retour
      3. Fonctions anonymes et closures
      4. Méthodes et récepteurs
    4. Structures de données
      1. Arrays et Slices
      2. Maps
      3. Structs
      4. Pointeurs et gestion de la mémoire
    5. Packages et modules
      1. Organisation du code en packages
      2. Création et utilisation de modules
      3. Gestion des dépendances avec go mod
      4. Versioning des modules
  3. Abstraction et Conception en Go : interfaces, composition et gestion des erreurs
    1. Interfaces et polymorphisme
      1. Définition et implémentation des interfaces
      2. Polymorphisme en Go
      3. Empty interface et type assertions
    2. Composition et design patterns
      1. Composition de structs
      2. Embedding et promotion de méthodes
      3. Design patterns spécifiques à Go
    3. Gestion des erreurs
      1. Le type error en Go
      2. Création et propagation des erreurs
      3. Meilleures pratiques pour la gestion des erreurs
  4. Concurrence et parallélisme
    1. Goroutines et concurrence de base
      1. Introduction aux goroutines
      2. Création et gestion des goroutines
      3. Parallélisme vs concurrence
    2. Channels et synchronisation
      1. Création et utilisation des channels
      2. Synchronisation avec les channels
      3. Select et gestion de multiples channels
    3. Patterns de concurrence avancés
      1. Worker pools
      2. Pipeline pattern
      3. Fan-out, fan-in pattern
      4. Context et annulation de goroutines
    4. Outils de diagnostic de concurrence
      1. Race detector
      2. Débogage de problèmes de concurrence
  5. Programmation réseau et web
    1. Programmation réseau
      1. TCP/IP avec Go
      2. HTTP client et serveur
      3. WebSockets
      4. gRPC et Protocol Buffers
    2. Développement web
      1. Création d'API RESTful
      2. Middleware et routeurs
      3. Templates et rendu côté serveur
      4. Frameworks web populaires (Gin, Echo, Fiber)
    3. Bases de données
      1. SQL avec database/sql
      2. ORM (GORM)
      3. NoSQL (MongoDB, Redis)
    4. Performance et optimisation web
      1. Optimisation des applications web Go
      2. Caching et mise en cache distribuée
      3. Load balancing et scalabilité
  6. Tests, optimisation et qualité du code
    1. Tests unitaires et d'intégration
      1. Ecriture de tests en Go
      2. Table-driven tests
      3. Mocking et stubbing
      4. Tests d'intégration et end-to-end
    2. Benchmarking et profilage
      1. Ecriture de benchmarks
      2. Utilisation de pprof
      3. Optimisation des performances
      4. Tests de charge et de performance
    3. Bonnes pratiques et patterns de conception
      1. Conventions de codage Go
      2. Patterns de conception adaptés à Go
      3. Refactoring et maintenance du code
    4. Outils d'analyse statique et qualité du code
      1. Golint, Gofmt, et autres outils intégrés
      2. Intégration continue pour Go
  7. Sécurité et déploiement
    1. Sécurité en Go
      1. Gestion sécurisée des données sensibles
      2. Cryptographie avec la bibliothèque crypto
      3. Sécurisation des applications web (HTTPS, CORS, etc.)
      4. Analyse statique de code pour la sécurité
      5. Meilleures pratiques de sécurité spécifiques à Go
    2. Déploiement et DevOps
      1. Compilation pour différentes plateformes
      2. Conteneurisation avec Docker
      3. CI/CD pour les applications Go
      4. Orchestration avec Kubernetes
    3. Monitoring et observabilité
      1. Logging avancé
      2. Métriques et tracing
      3. Intégration avec des outils de monitoring
  8. Sujets avancés et tendances émergentes
    1. Reflection et métaprogrammation
      1. Utilisation du package reflect
      2. Génération de code
      3. Plugins en Go
    2. Optimisation des performances avancée
      1. Gestion avancée de la mémoire
      2. Optimisation pour les systèmes multi-coeurs
      3. Techniques d'optimisation avancées
    3. Interopérabilité (CGo et FFI)
      1. CGo : intégration avec le code C
      2. Création de bibliothèques partagées
      3. FFI (Foreign Function Interface)
    4. Go dans le cloud et microservices
      1. Développement de microservices
      2. Serverless avec Go
      3. Intégration avec les services cloud (AWS, GCP, Azure)
      4. Développement d'opérateurs Kubernetes en Go
    5. Go et l'Intelligence Artificielle : intégration et cas d'utilisation
      1. Bibliothèques Go pour le ML (Gonum, Gorgonia)
      2. Intégration avec TensorFlow et PyTorch
      3. Développement de modèles de ML en Go
    6. Go pour les systèmes embarqués et l'IoT
      1. Programmation de microcontrôleurs avec TinyGo
      2. Communication avec des dispositifs IoT
      3. Go pour l'edge computing
    7. Génériques en Go
      1. Introduction aux génériques
      2. Utilisation des génériques dans le code Go
      3. Meilleures pratiques et cas d'utilisation
  9. Projets pratiques et études de cas
    1. Projets pratiques
      1. Développement d'une application web complète
      2. Création d'un microservice avec gRPC
      3. Implémentation d'un système de traitement de données distribué
    2. Etudes de cas d'entreprises
      1. Analyse de l'utilisation de Go chez Google
      2. Etude de cas : Uber et Go
      3. Go chez Dropbox : leçons apprises
  10. Conclusion et perspectives
    1. Bilan et perspectives
      1. Synthèse des points clés du langage Go
      2. Evolution et futur de Go
      3. Opportunités professionnelles avec Go
    2. Ressources et communauté
      1. Ressources d'apprentissage complémentaires
      2. Participation à la communauté Go
      3. Comment contribuer à l'écosystème Go