Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introdução a Go

786 views

Published on

Palestra de introdução a linguagem Go

Published in: Software
  • Be the first to comment

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

×