Upgrade to Pro — share decks privately, control downloads, hide ads and more …

À la découverte de Go

À la découverte de Go

Go (ou Golang), le langage de programmation développé par Google, ça te dit quelque chose ?
Construis des programmes sécurisés et scalables avec Go. Simple, efficace, facile à apprendre, et en bonus open-source!

Comment ?
Go a été conçu pour résoudre les défis de la programmation dans un monde de plus en plus connecté au sein de Google. Il offre des moyens simples et rapides de construire des applications performantes, et est utilisé par de nombreuses entreprises tech comme Uber et Netflix, ainsi que par des communautés open source notamment dans le cloud natif.

Donia Chaiehloudj

February 17, 2023
Tweet

More Decks by Donia Chaiehloudj

Other Decks in Technology

Transcript

  1. Donia Chaiehloudj www.containerdays.io #CDS22 Organisatrice du GDG Sophia-Antipolis Membre WHAT06

    Women Techmakers Ambassador @doniacld Software Backend Engineer - 6 ans de Go
  2. C’est quoi Go? Un langage de programmation: • simple •

    efficace • open-source • sympa • compilé • typé http://golang.org Go = Golang Représenté par sa mascotte: un Gopher
  3. Un peu d’histoire Go a été désigné par Google pour

    résoudre des problèmes internes à Google. Google a de gros problèmes.
  4. Pourquoi Go ? • éliminer les ralentissements • améliorer la

    productivité • maintenir/améliorer la capacité d’accepter un grand nombre de requêtes Go was designed by and for people who write—and read and debug and maintain—large software systems. Go's purpose is not research into programming language design. Go's purpose is to make its designers' programming lives better. https://go.dev/talks/2012/splash.slide#8 Go at Google, SPLASH, Tucson, Oct 25, 2012, Rob Pike
  5. Go est utilisé par qui ? • Google • Microsoft

    • Meta • Dell • HP • Intel • SAP • IBM • Walmart • RedHat source: https://go.dev/blog/survey2022-q2-results
  6. Exemple d’un fichier en Go: main.go // Entrypoint of the

    program package main import "fmt" func main() { fmt.Println("Hello Le Wagon Nice") } Commenter avec ‘//’ ou ‘/* */‘
  7. Exemple d’un fichier en Go: main.go // Entrypoint of the

    program package main import "fmt" func main() { fmt.Println("Hello Le Wagon Nice") } Nom du package Commenter avec ‘//’
  8. Exemple d’un fichier en Go: main.go // Entrypoint of the

    program package main import "fmt" func main() { fmt.Println("Hello Le Wagon Nice") } Nom du package Les imports des dépendances Commenter avec ‘//’
  9. Exemple d’un fichier en Go: main.go // Entrypoint of the

    program package main import "fmt" func main() { fmt.Println("Hello Le Wagon Nice") } Nom du package Les imports des dépendances Déclaration d’une fonction: main Commenter avec ‘//’
  10. Exemple d’un fichier en Go: main.go // Entrypoint of the

    program package main import "fmt" func main() { fmt.Println("Hello Le Wagon Nice") } Nom du package Les imports des dépendances Déclaration d’une fonction: main Corps de la fonction Commenter avec ‘//’
  11. Exemple d’un fichier en Go: main.go // Entrypoint of the

    program package main import "fmt" func main() { fmt.Println("Hello Le Wagon Nice") } Nom du package Les imports des dépendances Déclaration d’une fonction: main Corps de la fonction Commenter avec ‘//’
  12. var delayMinutes int // -8 (signed integer) var wagonNumber uint

    // 8 (unsigned integer) var temperature float32 // 21.5 (decimal) Number var isPassenger bool // false Bool Types de base var wagon string // “W46” String
  13. train := "TGV" Variable avec initialisation Variables var <nom de

    variable> <type> = <valeur> <nom de variable> := <valeur> var train string = "TGV" Variable avec initialisation courte Plusieurs variables avec initialisation et même type var <nom de variable 1>, <nom de variable 2> <type> = <valeur 1>, <valeur 2> var train1, train2 string = "TGV1", "TGV2"
  14. // string const WagonBar = "Bar" // enumeration const (

    debug = iota // 0 info // 1 fatal // 2 error // 3 ) Constantes const <nom constante> = <valeur> const ( <nom de variable 1> = iota <nom de variable 2> <nom de variable 3> ... )
  15. Structures type <nom de structure> struct { <champ 1> <type>

    <champ 2> <type> } Création type Wagon struct { Kind string Number int } wagonBar := Wagon{Kind: "Bar" , Number: 4} // explicit fields wagonBar := Wagon{"Bar", 4} // omit fields // wagonBar.Kind = "Bar" & wagonBar.Number = 4 <nom variable> := <nom de structure>{<champ 1>: <valeur 1>, <champ 2>: <valeur 2>} Déclaration de la variable
  16. func register(passenger string, place int) Paramètres Fonctions func getWagonNumber() int

    Plusieurs valeurs retournées func <nom fonction>(<nom param1> <type>, <nom param2> <type>) func <nom fonction>() <type> func getWagonNumber() (int, error) func <nom fonction>() (<type>, <type>) Une valeur retournée error est un type en Go
  17. Outils go build . Compile le code du package et

    ses dépendances, génère un fichier exécutable go run $PKG Compile le code du package $PKG et ses dépendances & lance le programme go test $PKG Lance les tests du package $PKG go fmt $PKG Résout les problèmes de format du package $PKG source: https://go-talks.appspot.com/github.com/davecheney/canberra-gophers/introduction-to-go.slide#46
  18. Not covered Beaucoup de choses! • Flow Statements (if, else,

    if else, for) • Concurrence (goroutines, channels) • ...
  19. Par où commencer? 1. Go Tour: https://go.dev/tour/ 2. Go Playground:

    https://go.dev/play/ 3. Documentation officielle: https://pkg.go.dev/std
  20. Apprends Go à ton rythme avec des projets de poche

    35% avec le code mtplewagon23 http://mng.bz/91Wx @doniacld Donia Chaiehloudj Crée ton propre Gopher https://gopherize.me/ https://hachyderm.io/@doniacld www.doniacld.com donia-chaiehloudj 🚂 https://github.com/doniacld/go-le-wagon
  21. Apprends Go à ton rythme avec des projets de poche

    35% avec le code mtplewagon23 http://mng.bz/91Wx 🚂 https://tinyurl.com/go-le-wagon 📚 🎁 QUIZZ ❓