Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Introdução a Go

Palestra de introdução a linguagem Go

  • Inicia sesión para ver los comentarios

Introdução a Go

  1. 1. Introdução a Go Elton Minetto Leandro Lugaresi
  2. 2. O que é?
  3. 3. Uma linguagem open source
  4. 4. Por que uma nova linguagem?
  5. 5. Muitos problemas com software em grande escala
  6. 6. Velocidade de compilação
  7. 7. Sistemas distribuídos Multicore
  8. 8. Objetivos
  9. 9. Semântica simples
  10. 10. Tipagem estática
  11. 11. Programação concorrente
  12. 12. Divertida!
  13. 13. TALK IS CHEAP, SHOW ME THE CODE!
  14. 14. Pacotes package main import ( "fmt" "math" ) func main() { fmt.Printf("Now you have %g problems.", math.Sqrt(7)) }
  15. 15. Resultados Múltiplos package main import "fmt" func swap(x, y string) (string, string) { return y, x } func main() { a, b := swap("hello", "world") fmt.Println(a, b) }
  16. 16. Erros package main import "github.com/coderockr/nfe/transmitter" func main() { response, err := transmitter.transmit(nfe, xml) if err != nil { panic("Error ") //tratamento de erro qualquer } result, err := transmitter.saveData(response, xml) if err != nil { panic("Error ") //tratamento de erro qualquer } }
  17. 17. Goroutines package main import ( "fmt" "time" ) func say(s string) { for i := 0; i < 5; i++ { time.Sleep(100 * time.Millisecond) fmt.Println(s) } } func main() { go say("world") say("hello") }
  18. 18. Canais package main import "fmt" func sum(s []int, c chan int) { sum := 0 for _, v := range s { sum += v } c <- sum // send sum to c } func main() { s := []int{7, 2, 8, -9, 4, 0} c := make(chan int) go sum(s[:len(s)/2], c) go sum(s[len(s)/2:], c) x, y := <-c, <-c // receive from c fmt.Println(x, y, x+y) }
  19. 19. "Cross Compilation", OO via composição e não herança, biblioteca padrão poderosa, etc.
  20. 20. Quem está usando?
  21. 21. Google, Basecamp, Globo.com, Canonical, DigitalOcean, Dropbox, Github, Heroku, Medium, MongoDB, Mozilla, Netflix, New Relic, New York Times, Resultados Digitais, Moip, Neoway, Walmart, etc https://github.com/golang/go/wiki/GoUsers
  22. 22. Aplicações
  23. 23. Microservices
  24. 24. IoT
  25. 25. Databases
  26. 26. CLIents
  27. 27. Material de estudo
  28. 28. http://golang.org/ http://tour.golang.org/ http://exercism.io/ https://github.com/avelino/awesome-go http://asemanago.com.br https://novatec.com.br/livros/linguagem-de- programacao-go/
  29. 29. Contato eminetto@coderockr.com http://eltonminetto.net http://codenation.com.br http://twitter.com/eminetto

×