Primeiras impressões sobre o Service Weaver
Embarquem no trem do hype comigo! No dia 01/03 o Google publicou no seu blog o lançamento de um novo framework, o Service Weaver. Lendo o post e a documentação fiquei bem empolgado e resolvi fazer uma prova de conceito. Eu adaptei o código de uma palestra sobre microsserviços em Go que havia feito algum tempo atrás e gostei muito do resultado. Gravei um video mostrando o código e minhas primeiras impressões....
Responsabilidade e disciplina
Em 2022 eu li dois livros que falam sobre duas das característica que eu considero cruciais para a carreira de qualquer profissional: responsabilidade e disciplina. Ambos os livros tem em comum um dos seus autores, o Jocko Willink: John Gretton “Jocko” Willink é um autor americano, podcaster e oficial aposentado da Marinha dos Estados Unidos que serviu nos Navy SEALs e é ex-membro do SEAL Team 3. Ele é co-autor do Responsabilidade extrema: Como os Navy Seals lideram e vencem e autor do Disciplina É Liberdade: Manual do Campo....
Developer productivity for fun and profit - Parte 1
Seja em cenários de crescimento acelerado ou mesmo no infeliz momento de layoffs que estamos passando, horas de desenvolvimento são um dos recursos mais caros e valiosos para as empresas. Desta forma, a produtividade e eficiência tornam-se diferenciais importantes para profissionais e times. Mas qual é a diferença entre produtividade e eficiência? Gostei bastante da definição que encontrei neste post: Enquanto a produtividade visa mais resultados com o mesmo esforço, a eficiência visa menos esforço, mantendo o mesmo resultado....
Programação pessimista
Alguns anos atrás Sam Newman publicou o livro Building Microservices que se tornou uma grande referência quando falamos em microsserviços. Em um dos capítulos, entitulado Microservices at scale, e que está público neste link, ele faz algumas afirmações interessantes (tradução minha): As falhas estão em toda parte Partir da suposição de que tudo pode e irá falhar leva você a pensar de forma diferente sobre como resolver problemas....
Go Cloud Development Kit
Neste post vou falar sobre um projeto bem interessante que é mantido pelo time que desenvolve a linguagem Go. Trata-se do Go Cloud Development Kit, também conhecido como Go CDK. O Go CDK fornece uma série de abstrações para um bom número de features bastante usadas em aplicações que rodam na nuvem, como banco de dados, armazenamento, mensageria, segredos, etc. O objetivo principal do projeto em criar estas abstrações é tornar o código independente de fornecedor de nuvem....
Aqueles que mantém o mundo girando
Em 2012 Scott Hanselman escreveu um post que ganhou certa popularidade: Dark Matter Developers: The Unseen 99%. Ele começa o seu texto definindo o que seria Matéria escura: Na astronomia e na cosmologia, a matéria escura é um tipo atualmente indeterminado de matéria que responde por uma grande parte da massa do universo, mas que não emite nem espalha luz ou outra radiação eletromagnética e, portanto, não pode ser vista diretamente com telescópios....
Dicas de livros sobre complexidade
Eu sempre tive a impressão de que um dos maiores males do desenvolvimento de software moderno é a complexidade. Não me refiro a complexidade dos problemas que são resolvidos atualmente, pois esses são realmente maiores do que décadas atrás. Machine learning, carros autônomos, microsserviços, etc, esses cenários possuem uma complexidade inerente e pouco podemos fazer para mitigar isso. Eu me refiro a complexidade que incutimos aos nossos códigos. Já vi aplicações que eram pouco mais do que CRUDs com várias camadas e frameworks que só tornavam o desenvolvimento e manutenção tarefas hercúleas....
Introdução a Cuelang
Aposto que nesse momento uma frase paira na sua cabeça: “Mais uma linguagem de programação”? Calma, calma, vem comigo que vai fazer sentido :) Diferente de outras linguagens como Go ou Rust, que são de “propósito geral”, a CUE possui alguns propósitos bem específicos. O seu nome na verdade é uma sigla que significa “Configure Unify Execute” e segundo a documentação oficial: Embora a linguagem não seja uma linguagem de programação de uso geral, ela possui muitas aplicações, como validação e modelagem de dados, configuração, consulta, geração de código e até script....
CUPID x SOLID
Se você desenvolve software profissionalmente é bem provável que já ouviu falar sobre os princípios SOLID pois eles se tornaram praticamente um padrão no mercado. Se não está famialirizado com o termo recomendo a leitura deste post. Agora que estamos todos na mesma página, vamos continuar… Como diria o grande Nelson Rodrigues: Toda unanimidade é burra Pensando nisso, quero trazer outro acrônimo interessante, o CUPID. Cada uma das letras significa uma propriedade que um determinado software deveria ter....
Criando uma API usando Go e sqlc
Ao escrever uma aplicação Go que trata dados em um banco de dados (neste post vou me concentrar em bancos de dados relacionais) temos algumas opções: escrever as consultas SQL usando alguma lib que implemente as interfaces da stdlib usar alguma lib que facilite a geração de SQL como a Squirrel apesar de não ser tão difundido como em outras linguagens, existem alguns ORMs que podem ser usados como os listados aqui usar uma ferramenta para gerar código a partir de consultas SQL É nesta última categoria que se encaixa a ferramenta que vou apresentar neste post, o sqlc....