Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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)

Slide 34

Slide 34 text

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