Um código organizado é essencial para manter a facilidade em sua manutenção. Go, com sua simplicidade e eficiência, oferece diversos recursos para garantir uma arquitetura bem estruturada. Um desses recursos é o uso de interfaces, que desempenham um papel fundamental na separação de responsabilidades e na criação de abstrações entre as camadas da aplicação. Neste…
we are developers
- Publicou17Artigo(s)
- Visualizados28900Vezes
- Desde2010
O Go 1.26 trouxe uma das maiores mudanças no runtime dos últimos anos: o Green Tea garbage collector agora vem habilitado por padrão. Neste post, vamos entender o que mudou, por que isso importa e o que esperar na prática. O que é o Green Tea GC? O Green Tea GC é uma reformulação do…
Nesse post vamos implementar uma função que utiliza context. No exemplo de chamada, vou utilizar o context WithTimeout. Dessa forma, conseguiremos fazer a função ser cancelada automaticamente, caso o tempo de execução dela ultrapasse o tempo estipulado no context. Vamos iniciar criando uma função com o nome doSomeHeavyWork. Para simular um processamento longo, vamos adicionar…
Na edição de 2022 da GopherCon Brasil, tive o prazer de palestrar sobre Fuzz Test. Foi muito bacana, pois durante a palestra, assim como nos corredores do evento, fizeram vários questionamentos que eu ainda não tinha feito sobre essa feature do Go. Se você ainda não conhece esse tipo de teste, convido você a ler…
SOLID é um acrônimo que representa cinco princípios no design de softwares orientados a objetos, sendo: Single Responsability Open-Closed Liskov Substitution Interface Segregation Dependency Inversion Principle Embora Go não seja uma linguagem orientada a objetos, ainda assim conseguimos utilizar os princípios de SOLID. Abaixo, vamos ver com mais detalhes cada um dos princípios. Single Responsability…
Uma das formas mais comuns de se fazer cache em aplicações Go é utilizando um map. Se você já fez isso, deve ter notado um aumento gradual no consumo de memória, e que normalmente após um restart da máquina ou pod volta ao “normal”. Isso acontece devido a forma como o map funciona. Por isso,…
Se você já ouviu falar mas não sabe ao certo o que é Dependency Injection ou como a utilizar em Golang, nesse artigo espero te ajudar a sanar as duas dúvidas. Para que todos estejam na mesma página, antes de ver como utilizar, vamos falar um pouco sobre o que é essa tal Dependency Injection…
O package Context do Go é algo que vemos sendo cada vez mais utilizados por grandes packages. No entanto, não é nada estranho ver pessoas sem saber qual context utilizar dentre os diferentes tipos disponíveis. Nesse post, vou falar sobre os diferentes tipos de context que temos, como fazemos para obtê-los e onde normalmente são…
Um pensamento muito comum para quem está chegando na linguagem Go, ou só conhece a linguagem pelo o que “ouviu na rua”, é achar que as goroutines são threads. Acontece que na prática, goroutines e threads, embora parecidas, são coisas bem diferentes. Vejamos. Uma thread, nada mais é do que um espaço que o sistema…
Entenda mais sobre Go. Se já conhece outras linguagens, podemos comparar o arquivo go.mod ao package.json do JS ou composer.json do PHP.
