Zen Go (versão de bolso)

Antecipando o início do curso "Golang Developer", preparamos uma tradução de uma pequena nota útil.




Dez dicas técnicas para escrever código Go simples, legível e fácil de manter. Apresentado como parte do GopherCon Israel 2020 .

Cada pacote tem apenas um propósito.


Um pacote Go projetado corretamente deve implementar apenas uma idéia, introduzindo um conjunto de comportamentos relacionados. Um bom pacote Go começa com um bom nome. Tente fazer do nome uma breve apresentação do seu pacote, descrevendo o que ele fornece usando apenas uma palavra.

Tratamento explícito de erros


Programas confiáveis ​​consistem em elementos que lidam com erros antes que possam atingi-los pelas costas. A verbosidade de if err! = Nil {return err} é justificada pela importância de lidar bem com cada erro nos locais onde eles podem ocorrer. O pânico e a recuperação não são exceções; eles não devem ser usados ​​dessa maneira.

Evitar o assentamento profundo com retorno


Cada vez que você recua, você adiciona mais uma condição à pilha mental do programador, ocupando um dos 7 ± 2 slots na memória de curto prazo. Evite fluxos de controle de preenchimento de vários níveis. Em vez de aninhamento profundo, mantenha o caminho do código bem-sucedido o mais à esquerda possível, usando operadores de limite.

Deixe a simultaneidade para o chamador


Deixe o chamador escolher se deseja executar sua biblioteca ou funcionar de forma assíncrona, em vez de impor essa opção a ele. Se sua biblioteca usa multithreading, deve fazê-lo de forma transparente.

Antes de iniciar a goroutine, pergunte quando ela para.


Gorutins têm recursos; bloqueios, variáveis, memória, etc. A maneira mais confiável de liberar esses recursos é interromper a goroutina que os possui.

Evite propriedades no nível do pacote


Busque transparência, reduza a conectividade e evite ações remotas horríveis, fornecendo as dependências de que o tipo precisa como campos desse tipo, em vez de usar variáveis ​​de pacote.

A simplicidade é importante


Simplicidade não é sinônimo de primitividade. Simplicidade não significa incompletude, significa legibilidade e manutenção . Se você tiver muito por onde escolher, sempre incline-se para a solução mais simples.

Escreva testes para capturar o comportamento da sua API do pacote.


Quer você comece com testes ou final, se esforce para 100% de cobertura com testes ou está satisfeito com o mínimo necessário - independentemente de tudo isso, a API do seu pacote é seu contrato com os usuários. Os testes são uma garantia de que esses contratos são claramente declarados. Teste o comportamento em que os usuários podem observar e confiar.

Se algo lhe parecer lento, primeiro prove-o usando a referência.


Muitos crimes contra a sustentabilidade são cometidos em nome da produtividade. A otimização destrói abstrações, expõe o interior e se liga firmemente. Se você decidir assumir esse fardo, verifique se há razões reais para isso.

Moderação é virtude


Use goroutines, canais, bloqueios, interfaces, incorporando com um senso de proporção.

Assuntos de suporte


Clareza, legibilidade, simplicidade são todos aspectos da sustentabilidade. É possível apoiar o que você trabalhou duro depois de sair? O que você pode fazer hoje para facilitar a vida de quem o suceder amanhã?



Saiba mais sobre o curso.



All Articles