Go 1.10 Release Party @ Joinville Go Meetup

Go 1.10 Release Party @ Joinville Go Meetup

Slides about Go 1.10 from my presentation at the Joinville Go Meetup on Feb 2018

7ef3cd04888c6d17f34d43e29ec3d46f?s=128

Carlos Alexandro Becker

February 27, 2018
Tweet

Transcript

  1. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 1/34 Go 1.10 Release

    Party Joinville Go Meetup 27 February 2018 Carlos Alexandro Becker
  2. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 2/34 Licença e Materiais

    Creative Commons Attribution-ShareAlike 4.0 International licence (https://creativecommons.org/licenses/by-sa/4.0/) Sinta-se encorajado a reutilizar, transformar ou construir usando esse material como base, desde que você utilize a mesma licença. Essa apresentação é baseada na apresentação (https://github.com/dlsniper/talks/tree/master/2018/go-1.10-release-party) do Florin Pățan (https://github.com/dlsniper) no Go London Meetup. 2
  3. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 3/34 Go 1.10 3

  4. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 4/34 Go 1.10 Go

    1.10 foi lançado! Anúncio (https://blog.golang.org/go1.10) Go 1.10 é a 11a release do Go 1. Notas da versão (http://golang.org/doc/go1.10) 4
  5. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 5/34 O que mudou?

    Vamos cobrir os seguintes pontos: Mudanças na linguagem Ports e SOs Performance Compilador e Ferramentas Biblioteca Padrão Comunidade 5
  6. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 6/34 Mudanças na Linguagem

    6
  7. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 7/34 Mudanças na Linguagem

    Não houve nenhuma mudança signi cativa! 7
  8. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 8/34 Ports e SOs

    8
  9. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 9/34 Ports e SOs

    Nenhum port novo, mas... Não suporta mais FreeBSD < 10.3 Última release a funcionar no OpenBSD 6.0 Última release a suportar macOS < 10.10 (yosemite) Última release a suportar Windows XP e Vista Go agora funciona novamente no NetBSD, mas requer o ainda-não-lançado NetBSD 8 e GOARCH amd64 ou 386 Nova env GOMIPS para MIPS 32-bits 9
  10. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 10/34 Performance 10

  11. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 11/34 Performance Continua rápido

    como antes! Tempo de compilação da stdlib 10% menor! 11
  12. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 12/34 Performance 12

  13. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 13/34 Performance 13

  14. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 14/34 Performance 14

  15. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 15/34 Performance 15

  16. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 16/34 Performance 16

  17. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 17/34 Performance 17

  18. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 18/34 Performance 18

  19. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 19/34 Compilador e Ferramentas

    19
  20. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 20/34 Compilador e Ferramentas

    - Cache go build e go test agora mantém cache! Isso signi ca que se você rodar go test várias vezes sem alterar o código do pacote ou de algum teste, o resultado da execução anterior vai ser exibido (com um cached no lado)! 20
  21. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 21/34 Compilador e Ferramentas

    go vet agora roda junto com go test parar ajudar a previnir alguns erros comuns. Agora é possível é possível usar a ag -coverpkg para medir a cobertura dos testes de multiplos pacotes: go test -coverpkg=./... -coverprofile cover.out ./... Temos também a ag -failfast pra parar os testes no primeiro erro ao invés de continuar executando. 21
  22. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 22/34 Compilador e Ferramentas

    Windows agora suporta c-shared archives (aka DLLs) macOS agora suporta Go plugins. Windows ainda não, veja a issue #19282 (https://github.com/golang/go/issues/19282) . 22
  23. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 23/34 Compilador e Ferramentas

    - gofmt Expressões de três índices em slices, em que algum dos índices contenha uma expressão complexa, agora são sempre formatadas como: slice[start+1 : stop : capacity] Métodos de uma linha em interfaces literais não são mais quebrados em múltiplas linhas: if c, ok := v.(interface { Close() error }); ok { } pode ser escrito como: if c, ok := v.(interface{ Close() error }); ok { } 23
  24. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 24/34 Compilador e Ferramentas

    - gofmt Se um literal composto conter apenas comentários, os comentários agora são indentados: var _ = []T{/* lone comment */} var _ = []T{ /* lone comment */ } se torna: var _ = []T{ /* lone comment */ } var _ = []T{ /* lone comment */ } Atenção: o gofmt não é coberto pelas mesmas garantias do Go 1 em si, cuidado ao usar ele em CI. 24
  25. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 25/34 Compilador e Ferramentas

    - go x go fix agora substitui os imports de golang.org/x/net/context para context, o que deve te ajudar a migrar seu código pra go 1.9+ go tool fix -r context your/package 25
  26. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 26/34 Biblioteca Padrão 26

  27. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 27/34 Biblioteca Padrão Nenhum

    pacote novo Novo tipo strings.Builder pra usar no lugar de bytes.Buffer em alguns momentos Unicode, emojis e etc Várias outras pequenas mudanças, veja a lista completa (https://golang.org/doc/go1.10#minor_library_changes) . 27
  28. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 28/34 Comunidade 28

  29. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 29/34 Comunidade - Meetups

    http://go-meetups.appspot.com (http://go-meetups.appspot.com) 29
  30. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 30/34 Comunidade - Conferências

    sobre Go ou com trilhas sobre Go no Brasil em 2018: GopherCon Brasil 2018, 2018.gopherconbr.org (https://2018.gopherconbr.org) TDC Floripa, www.thedevelopersconference.com.br (http://www.thedevelopersconference.com.br) ? 30
  31. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 31/34 Comunidade - Recursos

    Lista de todas as conferências sobre Go: github.com/golang/go/wiki/Conferences (#ZgotmplZ) Lista de todos os Go meetups: go-meetups.appspot.com (https://go-meetups.appspot.com) Recursos para novos palestrantes: github.com/golang/go/wiki/NewSpeakers (https://github.com/golang/go/wiki/NewSpeakers) 31
  32. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 32/34 Conclusion Atualize pro

    Go 1.10! É a melhor versão do Go, até agora. 32
  33. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 33/34 Thank you Carlos

    Alexandro Becker @caarlos0 (http://twitter.com/caarlos0)
  34. 5/9/2018 Go 1.10 Release Party http://127.0.0.1:3999/go110.slide#1 34/34