Salve, comunidade da linguagem da marmota!
Começa mais esta edição agradecendo a vocês que assinam esta lista. São ao todo 694 pessoas recebendo este material toda semana, muito obrigado!
Se quiser enviar algum texto para publicar, vaga na sua empresa, anunciar um novo projeto, manda aqui no nosso formulário de feedback!
Nesta edição, temos bancos de dados relacionais, dicas de onde aprender Go, sistemas de tipos, ferramenta que fecha PRs feitos nos fins de semana, JSON.Decode, identificação de testes, JWT e Echo, Viper, ferramentas de formatação, lives da comunidade, erros, nova RC de 1.16, worker pool, muita goroutine, testes e mais testes, persistência de chave e valor e muito mais!
Boa leitura!
Links
Go 1.16 Release Candidate 1 is released
Tivemos nesta semana o anúncio oficial do RC 1 da futura nova versão da linguagem da marmota. Com tantas coisas interessantes planejadas e a data de lançamento para este Fevereiro, não deixe de acompanhar o que vem por aí :)
Errors Are Not Exceptions
Um assunto muito interessante é a forma como Go permite encararo que é um erro. Neste texto, o Shawn Swyx Wang compartilha seu ponto de vista no assunto, vindo da experiência de outras linguagens de programação.
You might not be using json.Decoder correctly in golang
Assim como ler muito texto por aí não te torna especialista em um assunto, estudar é sempre preciso. Neste texto aqui, o Taq Karim explica algumas coisas que passam batido no dia a dia sobre como tratar JSON mal formado.
Workspaces em Golang
Temos um novo texto do Higor Diego, onde ele fala sobre as definições de workspace usadas junto de GOPATH.
Demo on creating worker pool in Golang
Neste post do Pi Ke, temos uma explicação interessante sobre a criação de um worker pool, um tipo de serviço para tarefas geralmente usando goroutines. Com exemplos de código e explicações, isso pode te ajudar se precisa desse tipo de solução no dia a dia.
User Authentication in Go Echo with JWT
O uso de JSON Web Token em autenticação já é conhecido e divulgado. O texto aqui apresenta toda uma abordagem, recheada de exemplos de código para uso junto do framework web labstack/echo.
Concurrency Patterns - Locks and WaitGroups
Este texto é parte de uma série que aborda padrões de concorrência diversos. Ali, explica-se um pouco sobre como o uso de Lock e WaitGroup permite uma abordagem assíncrona segura. Recomendo a leitura!
Embracing the Go Type System
Um texto bem massa do Cory LaNou explicando o conceito de tipos de dados em Go e sua importância, principalmente para quem está começando na linguagem e tem pouco conhecimento sobre sistemas de tipos.
Three very simple examples to demonstrate Goroutines
Uma thread no Twitter feita pelo Go at Speed com três exemplos “simples” (lembrando que o conceito de fácil é relativo, portanto não se sinta incapaz se tiver dificuldades de entender ;) ) sobre a tão famosa goroutine.
Microservices test architecture. Can you sleep well without end-to-end tests?
Uma leitura muito massa feita pelo Milos Smólka, parte de uma série mais do que recomendada para todos os níveis de conhecimento, com dicas sobre qualidade e como você pode evitar a adoção exagerada de testes E2E nas suas aplicações.
Getting started with Go
Um post bacana do Richard Bertozzo voltado para você que está à procura de dicas por onde começar a aprender sobre a lingaugem Go. Dica: só tem sugestão de projeto massa ali =P
Real-world SQL in Go: Part I
Tá aí mais um texto muito bacana do Ben Johnson sobre um assunto muito massa. Vejo muita discussão sobre ORM isso, SQL cru ali, implementação própria etc. Independente da sua escolha, definir uma forma clara de comunicação com banco de dados relacionais é importante e pode se tornar um pesadelo se não tiver uma estratégia definida.
Podcasts
Why writing is important
Episódio novo do GoTime, com um tema muito importante não só para desenvolvimento em Go mas para tecnologia como um todo: a escrita. Porque é importante? E como isso me ajuda a escrever código Go melhor? Ouça o episódio e confira!
Vídeos
Unit Testing with Go
Um vídeo tutorial bem bacana feito pela Chloé Powell, explicando uma estratégia de testes unitários focada em “qualidade primeiro”.
Praticando Go #13 - Usando Viper para ler arquivos de configuração
E tem mais vídeo do Gustavo Silva! Nesta décima terceira aula, ele aborda o uso do spf13/viper para leitura de arquivos de configuração.
Programando com Go [LIVE] #02
E como só um vídeo não basta, o Gustavo Silva trouxe mais coisa! Aqui, ele segue no novo projeto para este 2021, uma plataforma de avaliações para pessoas escritoras.
Golang - Escape Analysis
Um novo video, do canal Arquivei sobre alocação de memória dinâmica e estática. O vídeo, mesmo que curto, aborda muitos detalhes nesse contexto, como Stacks e Heaps, arrays e slices, e muito mais.
Eventos
GoSheffield - February
Mais um meetup online da comunidade Go Sheffield. Os temas serão Why I Wrote Another Go HTTP Client e Go Worst Practices. Não perca a chance e participe!
Projetos
evilsocket/ditto
Uma ferramenta CLI para análise de domínios de sites para busca de possíveis ataques do tipo IDN (Internatinalized Domain Name).
nikoksr/notify
Uma lib para envio de notificações para Discord, email, Telegram e Slack.
mdempsky/deferfuzz
Uma ferramenta para identificar falhas de defer/panic/recover através de testes do tipo fuzzing.
cilium/team-manager
Uma ferramenta CLI para organizar times e permissões no GitHub.
camba1/gotemp
Um projeto exemplo de micro framework usando go-micro.
Namchee/good-weekend
Um projeto (um tanto curioso) para automaticamente rejeitar Pull Requests feitos nos finais de semana.
go-tk/versionedkv
Um projeto que oferece abstrações para criar interações de persistência do tipo chave e valor.
life4/awesome-go-code-formatters
Uma lista de ferramentas para formatação de código Go.
E por hoje é só! Tenha um excelente final de semana, e até a semana que vem!