Salve, comunidade da linguagem da marmota!
Começamos mais uma edição da GoNotícias agradecendo à vocês que assinam, lêem e compartilham esta lista. São ao todo 729 pessoas no momento, muito obrigado!
Se tiver alguma dica, agradecimento, sugestão de link para publicar, projeto que você tá começando e quer feedback, faça como o Tiago Neves e o Selmison: manda no nosso formulário de feedback aqui, isso nos ajuda e muito!
Nesta edição, temos a aceitação de generics na linguagem, problemas com Chromium e scrapping, GoLand e vim, revisão de livros, lives da comunidade, muito canal e vídeo aulas de Go, ferramentas para mock, generics, anti-patterns de TDD, gestão de dependências, padrões de design na prática, dúvidas sobre REST e banco de dados, e muito mais.
Boa leitura!
Links
TIL: A (maybe) unexpected usage of the -count flag in Go tests
Uma dica MUITO bacana do Michele Caci para execução de testes com go test.
Go 2 generics in 5 minutes
Um texto do Alberto de Murga sobre um dos assuntos mais falados nesta semana, generics: o que são, definição, inferência de tipo, constantes, tudo isso explicado com exemplos simples de código.
Retract Go Module Versions in Go 1.16
Você escreveu sua lib, criou a tag e só depois descobriu que tinha um bug tenso ali. Rapidamente, corrigiu, subiu uma nova tag e pronto, problema resolvido. Mas e a tag anterior, comofas? Nesse texto do blog GolangTutorial, temos uma explicação massa do que é o retract, um recurso vindo com a versão 1.16 para resolver esse tipo de problema.
Go Programming Language - book review
O livro A Linguagem de Programação Go, mesmo não sendo um livro novo, é até hoje uma das fontes mais recomendadas de estudo da linguagem da marmota. O que faz desse livro uma referência? Talvez este texto do Bartłomiej Klimczak te ajude nessa dúvida :)
New chapter for Learn Go with Tests!
E tem mais assunto de livro! Nesse tweet, o Chris James anunciou a adição de um capítulo no livro Learn Go with Tests sobre anti-patterns de TDD (Test Driven Development, ou Desenvolvimento Orientado à Testes). Uma ótima oportunidade de aprendizado com um livro feito pela comunidade (e que tem projeto de tradução para pt_BR bem aqui, confira!)
Prevent chromedp Chromium zombie processes from stacking
Um texto bacana do Aymeric Beaumet voltado para quem deseja fazer (ou já faz) uso de scrapping com Go e Chromium e um problema de processos zumbis que ele encontrou nesse uso, com muito exemplo de código.
GoLand 2021.1 EAP 3 Introduces go:embed Support, Run Targets, Extract Type Refactoring, and More
Atenção, pessoas que usam GoLand: a JetBrains anuncia uma nova versão da IDE, integrando novos recursos interessantes que estão por vir na versão 1.16. Lembrando que trata-se de uma versão EAP - Early Access Program, portanto faça backup antes de instalar!
My vim golang programming environment
E como nem só de IDEs vive o trabalho, temos um texto bacana do Li Jianying com dicas de como montar um ambiente com vim, de plugins até Docker.
Repository secure by design: how to sleep better without fear of security vulnerabilities
Mais uma etapa massa do blog Three Dots Labs, onde o Robert Laszczak explica sobre uma falha de segurança no código de autorização, a necessidade de boa definição de design de software e sua solução proposta com uso do padrão de design Repository.
How Buffer Pool Works: An Implementation in Go
Para quem tem curiosidade em saber como funciona um banco de dados, sua atualização e gerenciamento de arquivos em disco, este texto do Bruno Calza explica um dos detalhes de implementação: buffer pool. Uma leitura bem bacana!
Managing dependencies
Uma nova página na documentação oficial foi criada, abordando gestão de dependências, um assunto muito importante e que hoje parece bem definido, como um guia para como fazer isso em seus projetos. Recomendo a leitura tanto para quem está começando como também para quem quer melhorar suas habilidades!
Correct path for REST API development (help)
Uma das discussões bacanas que encontrei nesta semana no r/golang, com algumas respostas e dicas bacanas para quem está começando e está com muitas dúvidas sobre APIs REST e Go.
Recommendations for learning RESTful/microservices/API design
Mais uma discussão no Reddit, complementando as respostas do link acima sobre desenvolvimento usando REST, adicionando microsserviços na discussão.
Which database do you use for your golang application and why?
Fechando a seção de dúvidas no Reddit, segue aqui outra discussão bacana: qual banco de dados as pessoas estão usando com Go, e por quê? Excelente pergunta para quem tá começando e também para quem quer se aprofundar mais :)
spec: add generic programming use type parameters is now accepted!
Mais um passo na implementação de generics em Go! A proposta na discussão acima segui para o status de Aceita, o que significa que de agora em diante toda a discussão vai focar somente em detalhes de implementação :D
Podcasts
Indecente (language) Proposals: Part 1
Neste novo episódio do GoTime, o tema é tipos de proposta feitas para incluir na linguagem como lazy values, interfaces mágicas e muito mais.
Vídeos
Code Club: Portscanner
Tem vídeo novo do John Arundel no Code Club! Neste vídeo: desbravar um projeto desconhecido, feito em Go, fazendo port scanning para desvendar como funciona.
Matt “KØDVB” Holiday
Nesta semana, conheci o canal do Matt Holiday YouTube, que tem produzido uma série muito bacana sobre Go: só nesta semana, teve vídeo sobre profiling, análise estática, testes, cobertura de código, módulos, desenvolvimento de programas e polimorfismo.
Gustavo “Glider Space” Silva
E como não poderia deixar de ser, temos mais videos no canal do Gustavo Silva! Teve mais um episódio de live da série Programando com Go 2021 e também teve uma nova parte do desenvolvimento da aplicação de resenhas de livros, ensinando como usar WaitGroups e Go Routines.
Eventos
Practical Understanding Of Scheduler Semantics - Bill Kennedy
Um encontro da galera do grupo Women Who Go Utah com apresentação do Bill Kennedy falando sobre código concorrente em multi-threads, padrões e exemplos de código.
Golang SP Chama para Palestrar no TDC
Um recado importante da comunidade Golang SP:
“Heeey Gophers! Nós do Golang SP temos um recado: está aberta a submissão de palestras da Trilha de Go do TDC, Edição Innovation. Estamos aqui para te convidar para enviar sua palestra e participar desse evento massa que vai acontecer entre 23 e 25 de março! Bora construir uma Trilha massa para a comunidade trocar ideia e conhecimento?! Para mandar tua proposta de talk é só enviar título e descrição nesse link http://bit.ly/cfptdc1, e vamos trocar uma ideia sobre a proposta ;)
Atenção que as submissões vão estar abertas só até domingo (dia 14/02/2021), heim!”
Projetos
jaswdr/faker
Uma lib para geração de dados falsos para mocks, testes em bancos de dados e outros usos.
adnaan/gomodest-template
Um repositório modelo para criação de projetos web com Go, HTML e JavaScript.
loadimpact/k6
Uma lib para testes de carga.
quackduck/uniclip
Ferramenta CLI de clipboard entre dispositivos.
Palexer/mdconv
Ferramente CLI para conversão de arquivos markdown para PDF ou HTML.
quackduck/tii
Ferramenta CLI que permite detectar e instalar comandos ausentes no seu SO.
KrishanBhalla/reminder
Lib para agendamento de alertas no desktop.
quackduck/rem
Ferramenta CLI para exclusão e recuperação de arquivos.
smlx/ccv
Ferramenta CLI para versionar séries de commits para tags em um repositório Git.
genkami/kiara
Lib para comunicação entre aplicações Go no modelo pub/sub.
makeworld-the-better-one/dither
Lib para conversão de imagens em versões pontilhadas.
visma-prodsec/confused
Ferramenta CLI para detecção de vulnerabilidades e falhas em dependências de projetos em Python, JavaScript e PHP.
E por esta semana é só! Até a semana que vem!