Pular para o conteúdo principal

Postagens

Injeção de dependência em Go com fx

A injeção de dependência é um padrão de design de software utilizado por alguns frameworks, como Angular e Spring, que nos permite a inversão de controle entre tipos por meio do uso de uma abstração em vez de uma implementação, o que resulta em um código mais modular e fácil de testar. Em Go, o pacote fx, um sistema de injeção de dependência, permite-nos construir uma aplicação sem a necessidade de  passar objetos para cada chamada de construtor.  Mas uma estrutura organizada de pastas é importante para facilitar o desenvolvimento de um projeto, e o seguinte código busca mostrar um uso básico de fx e uma estrutura inicial de pastas que serve como exemplo de uso do sistema de injeção de dependência em Go. Tipos de interface não serão criados, uma vez que o objetivo principal aqui é o de exemplificar o uso de fx.  / cmd main. go / internal / app app. go module. go / controller controller. go module. go / usecase ...
Postagens recentes

Tratamento de erros em Go

É comum que as aplicações precisem lidar com situações excepcionais, como dados de entrada errados (json mal formatado), falhas de acesso ao disco ou em conexões de rede ou registro inexistente em uma base de dados. A manipulação de erros em Go é diferente de como realizamos em outras linguagens, como Java, Ruby e Python. Nessas linguagens, lidamos com exceções, que tratamos com o uso da estrutura try/catch ou algo similar.  Normalmente as pessoas recorrem à leitura de uma "stack trace" para identificar a linha de um arquivo em que a exceção surgiu, então, ao trabalhar com Go, buscam uma maneira similar através de bibliotecas de log, mas o resultado final são logs em várias partes do código, justamente por não utilizar a maneira própria da linguagem Go para o tratamento de erros. Erros são valores  Em Go não temos uma sintaxe especial para manipular erros, porque erros são valores do tipo error, comumente retornados em uma função. Então, devemos verificar o erro e realizar al...