Ícone do site Aprenda Golang

Como Escrever Código Idiomático em Go

Código Idiomático

Se você está aprendendo Go ou já tem experiência com a linguagem, provavelmente já ouviu falar sobre “código idiomático”. Mas o que realmente significa escrever código idiomático em Go? Por que isso é importante e como podemos identificar boas práticas que seguem esse princípio?

Neste post, vamos explorar o conceito de código idiomático. Além disso, veremos exemplos práticos que mostram a diferença entre código idiomático e código que não segue as melhores práticas.

O que é código idiomático?

Em termos simples, código idiomático é aquele que segue as práticas e convenções estabelecidas da linguagem, utilizando seus recursos de maneira eficaz, clara e intuitiva.

Mas, mais do que isso, escrever código idiomático em Go significa escrever código que:

  1. Aproveita as características únicas da linguagem: Go foi projetado para ser simples, eficiente e seguro. Um código idiomático reflete esses valores.
  2. Segue os padrões da comunidade: A comunidade Go possui diretrizes bem estabelecidas, como o uso de gofmt para formatação, golint para análise estática e padrões como a escrita de testes.
  3. Prioriza a legibilidade: Um código idiomático é legível e fácil de entender por outros desenvolvedores familiarizados com Go.

Escrever código idiomático também implica em abraçar a filosofia da linguagem. Por padrão – embora aconteça muito -, Go não tenta ser como outras linguagens. Afinal, a linguagem proporciona um conjunto de ferramentas e soluções que, quando adotadas corretamente, ajudam os desenvolvedores a escreverem código mais limpo e eficiente.

Se você ainda não está convencido, vou te dar mais 4 motivos do por que escrever código idiomático:

Código Idiomático na Prática

Depois desse monte de conceitos, vamos analisar um exemplo para entender melhor o que significa código idiomático.

Embora seja uma prática até que comum, o exemplo abaixo ilustra um código considerado NÃO idiomático.

func checkError(err error) {
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(1)
    }
}

func main() {
    file, err := os.Open("file.txt")
    checkError(err)
    defer file.Close()
    fmt.Println("File opened successfully")
}

Problemas:

  1. A função checkError imprime o erro diretamente e encerra o programa usando os.Exit(1). Isso é considerado uma prática ruim, pois dificulta o controle de fluxo do programa.
  2. A mensagem de erro não fornece informação suficiente.

Agora, vamos fazer uma pequena mudança no mesmo código para que ele se seja idiomático.

func main() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatalf("failed to open file: %v", err)
    }
    defer file.Close()

    fmt.Println("File opened successfully")
}

Melhorias:

  1. O uso de log.Fatalf torna o código mais conciso e fornece uma mensagem de erro mais clara.
  2. Não é necessário criar uma função separada para tratar erros simples.
  3. O código fica mais direto e legível.

Mais exemplos de práticas idiomáticas

Conclusão

Escrever código idiomático em Go é uma habilidade essencial para qualquer desenvolvedor que deseja se destacar na comunidade. Seguir as práticas recomendadas torna seu código mais legível, manutenível e eficiente.

Gostou do conteúdo?

  • Inscreva-se na nossa newsletter para receber mais dicas práticas sobre Go, Kubernetes e desenvolvimento de software diretamente no seu e-mail!
  • 🚀 Torne-se um assinante pago do blog e tenha acesso a conteúdos exclusivos, como tutoriais avançados, estudos de caso e muito mais!

Faça parte da comunidade!

Receba os melhores conteúdos sobre Go, Kubernetes, arquitetura de software, Cloud e esteja sempre atualizado com as tendências e práticas do mercado.

Livros Recomendados

Abaixo listei alguns dos melhores livros que já li sobre GO.

Sair da versão mobile