Share
Embed
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
Transcript
34 slides
-
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 -
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 -
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/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/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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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)