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

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

Carlos Alexandro Becker

February 27, 2018
Tweet

More Decks by Carlos Alexandro Becker

Other Decks in Programming

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 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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