BT

A sua opinião é importante! Por favor preencha a pesquisa do InfoQ!

Go 1.9 lançado com alias de tipos, melhorias no runtime e tooling

| por Sergio De Simone Seguir 5 Seguidores , traduzido por Leandro Guimarães Seguir 3 Seguidores em 11 set 2017. Tempo estimado de leitura: 2 minutos |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

A grande mudança na recém lançada versão 1.9 do Go é o avanço no suporte para a melhoria de código através da utilização da declaração de alias de tipos. A nova versão também traz melhorias no garbage collector e no compilador.

A melhoria gradual de código (gradual code repair), conforme explicação do engenheiro do Google Russ Cox, é uma abordagem bastante útil para a realização de refactoring, especialmente em uma grande base de código. Em resumo, a melhoria gradual de código auxilia a realização de um grande refactoring em uma série de passos, ou melhor, commits ao invés de se fazer todas as mudanças automaticamente, em um único commit.

Em um nível conceitual, o atomic refactor é geralmente mais simples, mas que pode gerar grandes commits em bases de código maiores deixando o processo de revisão e merge mais complicado. Ao utilizar o gradual code repair, o refactoring acontece em 3 passos:

  • Primeiro, você adiciona a nova API, que deve ser capaz de coexistir com a antiga API. Dessa forma, você não precisa alterar todas as chamadas para a antiga API de uma única vez.
  • Segundo, você modifica todas as chamadas para a antiga API para a nova API.
  • Finalmente, você pode remover a antiga API.

Para habilitar a melhoria gradual de código, devem ser criados nomes alternativos para constantes, funções, variáveis e tipos. Com a nova versão, o Go permite a definição de alias de tipos utilizando uma declaração como:

type OldAPI = NewPackage.API

Isso pode ser utilizado para fazer todas as referências para OldAPI utilizar o novo tipo automaticamente. Para uma discussão mais ampla a respeito do gradual code repair, não deixe de conferir a explicação completa de Russ Cox.

Conforme explicação de um outro desenvolvedor do Google, Francesc Campoy, a maior parte do esforço para o Go 1.9 foi direcionado a realização de melhorias no runtime, bibliotecas do core e tooling. As mudanças mais significativas são:

  • Na nova versão, o garbage collector do Go tem uma melhor performance graças ao número de funções do próprio Go disparando o garbage collection de forma concorrente, bloqueando somente a chamada do goroutine e não toda a execução. Além disso, a alocação heap de objetos grandes também teve uma melhora significativa.
  • O compilador do Go 1.9 está apto a compilar funções que pertençam à mesma package em paralelo. Isso melhora a compilação em paralelo de packages separadas, o que já estava disponível em versões anteriores do compilador.
  • Nas bibliotecas core, a versão 1.9 do Go torna o uso da package time segura graças ao monotonic time tracking. Isso torna mais fácil a comparação com valores Time mesmo na ocorrência de sincronizações de relógios. Além disso, no novo tipo Map da package sync permite mapas concorrentes operando em thread-safe com carregamento, armazenamento e remoção constant-time.

Para ficar por dentro de todas as mudanças que vieram com o Go 1.9, faça a leitura completa do release notes oficial.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT