Garantindo qualidade de código com Go

By Matheus Mina

Elevator Pitch

Todo mundo que já precisou trabalhar naquele legado, com comportamentos estranhos, sem testes e padronização sabe como é difícil manter o código e entregar novas funcionalidades. Nessa talk vai saber como padronizar e testar seu código, além de quais ferramentas ajudam na busca por um código melhor.

Description

Muitas vezes um código se torna legado não pela idade ou tempo que foi escrito, mas pela falta de manutenabilidade que aquele código adquire. Um bom exemplo são códigos sem cobertura de testes suficiente, pois tornam qualquer refatoração mais custosa porque torna mais difícil garantir o comportamento anterior. Para isso, a linguagem e a comunidade nos fornece diversas bibliotecas para escrever testes e facilitar a vida do dev em garantir os comportamentos esperados de cada funcionalidade.

Outro exemplo de códigos com baixa manutenabilidade é quando o código não tem um padrão claro. Variáveis e funções não seguem um padrão de nomenclatura, cada condicional com sintaxe diferente e etc. A falta de padronização dificulta o entendimento de novos desenvolvedores na equipe e até mesmo você de entender o código em outra parte do sistema. Ao utilizar ferramentas como o go fmt e linters conseguimos ter uma ferramenta que garante um padrão claro para toda a codebase.

Também existes os códigos complexos, que causam muitos problemas quando se existe a necessidade de refatoração. Porém, ao escrever testes e tendo um padrão claro no código, a complexidade diminui, facilitando o entendimento do código.

A idéia dessa palestra é abordar como utilizar as ferramentas, padrões e boas práticas que temos a nossa disposição para melhorar a qualidade do nosso código e consequentemente a qualidade do nosso dia a dia como desenvolvedores.

Notes

Sou técnico em Informática Industrial pelo CEFET-MG, bacharel em Ciência da Computação pela UNIFEI e apaixonado por computação desde os meus 15 anos. Já participei de diversas comunidades ao longo da minha trajetória, sempre buscando compartilhar conhecimento e auxiliar na organização de eventos. Também sou entusiasta do mundo Open Source, tendo feito algumas contribuições em projetos diversos. Atualmente, trabalho como Staff Engineer no PicPay.