Salve, comunidade da linguagem da marmota! Ceis tão bem?
Começo mais uma edição agradecendo à você e cada uma das 655 pessoas que assinam esta lista. Este trabalho é para vocês!
Se quiser mandar alguma sugestão, dica, feedback, salve pra galera, o que for, basta usar este formulário aqui :)
Na edição desta semana, temos novas releases de 1.15, padrões de CRUD, testes de handlers, dicas de aprendizado, interfaces, mocks, propostas na linguagem, novidades diversas na versão 1.16, lives e meetups da comunidade, call for papers de conferência internacional, persistência com JSON, latência e inspeção de HTTP, chatbots, replicação de Redis e muito mais!
Boa leitura!
Links
Go 1.15.7 and Go 1.14.14 are released!
Temos novas versões disponíveis! As atualizações focam em correções de segurança nos packages cmd/go e crypto/elliptic, inclusive com artigo no blog da linguagem explicando detalhes de uma das correções. Aproveita e não deixa de atualizar!
Go1.16 release status
Também tivemos na semana mais evolução para a versao 1.16 sair, faltando pouco para termos logo a release definitiva, planejada para Fevereiro deste ano.
Testando handlers HTTP em Go
Um artigo massa do Nícolas Barbosa explicando como usar o package net/http/httptest na criação de testes para handlers HTTP, com exemplos de código. Confira!
Mock sql.DB and generics
Uma thread pelo Jon Calhoun sobre um visão de mocks de sql.DB usando generics, com exemplos de código. Confira!
Are you a beginner to Go? Here’s a list of resources that can help you learn
Uma lista de dicas e referências bacanas de como você pode finalmente aprender Go.
Common CRUD Design in Go
Um post bacana mostrando uma forma de como fazer CRUD (Create, Read, Update, Delete) em Go, com exemplos de código e dicas com motivos e escolhas explicandas. Uma referência muito interessante :)
proposal: add native support for programming persistent memory in Go
Uma discussão interessante: adição de pmem que poderia oferecer uma nova forma de acesso à dados nativamente na linguagem. Por enquanto é só discussão, mas vale a pena acompanhar para saber os caminhos possíveis da linguagem da marmota.
A few ideas for your next Go project
Uma série de ideias de projetos para ajudar quem pode estar sem ideias de qual projeto começar e quer ouvir algumas sugestões.
Go 1.16, file system interface and //go:embed
Neste tweet, o francesc explica um pouco sobre dois detalhes que virão na versão 1.16: o package io/fs, que introduz uma interface para sistemas de arquivos, e a diretiva //go:embed, que já falamos nesta lista em outras edições.
Crash Course on Go Interfaces
Um texto do Jon Calhoun que é uma aula sobre interfaces em Go. Se ainda tem alguma dúvida no assunto, recomendo a leitura :)
Go’s ioutil package to be deprecated in 1.16
”io/ioutil, like most things with util in the name, has turned out to be a poorly defined and hard to understand collection of things”. Tá aí uma verdade :P E isso começa na versão 1.16, de forma gradativa e anunciada.
Build commands like go build and go test no longer modify go.mod and go.sum by default
Um tweet do John Reese trazendo mais expectativa para a versão 1.16: os arquivos go.mod e go.sum não serão mais editados na execução de build e test; o module-aware será padrão, com ou sem go.mod; entre outras novidades.
Podcasts
CUE: Configuration superpowers for everyone
Neste episódio do GoTime o assunto é CUE (Configure Unify Execute), uma linguagem open source feita em Go para definir, gerar e validar diversas coisas como configurações, APIs, schemas de bancos de dados etc, e como podemos usar CUE nas aplicações em Go buscando torná-las melhores.
Vídeos
Programando com Go 2021 [LIVE] #01
O Gustavo Silva retomou a produção de vídeos noseu canal, começando um novo projeto de plataforma de livros e resenhas. Separa um momento, pega o notebook e acompanhe essa nova série!
Usando JSON como banco de dados em #Golang
Mais um video da série de estudos em Go do Cesar Gimenes, trazendo desta vez como usar arquivos JSON como persistência de dados.
Getting Started with Docker Compose For Go Applications
Um tutorial rápido do Elliot Forbes para aprender como usar Docker Compose nos seus projetos em Go.
Golang Live | CONTEXT 101 with Golang
Uma live explorando detalhes do package context, que é presente em diversos outros packages.
Eventos
GopherCon Europe 2021 Call for Papers
Já está aberta a chamada de propostas para a GopherCon Europe! Quer ter a experiência de palestrar em um evento no exterior? Então não perde a chance!
#11 Meetup (online) da comunidade Go de SC
A comunidade Go SC já marcou seu próximo enontro online, com palestras sobre implementação de arquitetura de event stream e desenvolvimento de microserviços com go-kit. Se inscreva e não perca!
Learning Go - Tips for Gophers at All Levels
E também tem meetup da comunidade GoBridge. Será como um encontro de mentoria, com dicas para todos os níveis de conhecimento, com recomendações e dicas de muita gente sobre como começaram a aprender a linguagem e o que as ajudou nesse caminho.
Projetos
spakin/xmorph
Pacote para efeitos de warp e morph em imagens.
jba/codec
Uma lib para encode baseada no pkgsite/internal/godoc/codec.
burrowers/garble
Uma ferramenta para obfuscar binários de build, deixando o mínimo de informações sobre a origem do código.
richiMarchi/latency-tester
Ferramenta para testar a latência entre client e server HTTP.
irevenko/what-anime-cli
Ferramenta CLI para identificar o anime a partir de uma imagem.
boratanrikulu/lirik.app
Projeto para exibir as letras das músicas que está ouvindo no Spotifai.
stickermule/rump
Ferramenta CLI para sincronizar dados entre diferentes bancos de Redis.
VinGarcia/kissorm
Um ORM baseado em simplicidade.
bitmaelum
Uma solução de sistema de emails, com projetos em Go.
jaimeteb/chatto
Um framework para desenvolvimento de chatbots.
asciimoo/wuzz
Ferramenta CLI interativa para inspeção de requests HTTP.
TeodorDyakov/spooky-connect4
Um jogo multiplayer feito em Go.
benbjohnson/litestream
Ferramenta CLI para replicação de bancos de dados SQLite ou S3.
E por esta seman é só! Até a semana que vem!