coding weekly #306

Newsletters - 14/Ago/2024 - por Campus Code
A sua newsletter da Campus Code • Edição 306 - Agosto de 2024

Hey! Tudo bem?

PostgreSQL é um dos bancos de dados mais antigos ainda em desenvolvimento ativo. Seus refinamentos contínuos ao longo dos anos resultaram em uma grande maturidade do sistema, tornando-o extremamente robusto, confiável e com um ecossistema rico em ferramentas e recursos. Isso significa que, provavelmente, você terá sempre uma novidade para aprender durante a implementação e manutenção. Para ajudar, selecionamos alguns artigos para evoluir seus conhecimentos em Postgres.

Você também vê como o Facebook sincroniza o tempo em milhões de servidores, como ler e escrever streams em NodeJS para processar grandes volumes de dados de forma eficiente, os perigos de abstrações para pessoas desenvolvedoras, quando é possível evitar o uso de efeitos em React e a história de um incidente com retries.

Boa leitura!

POSTGRES

Um mini elefante sobre o teclado de um laptop.

Gerado por IA.

Como anonimizar ou mascarar dados sensíveis em PostgreSQL

O PostgreSQL Anonymizer é uma extensão para Postgres que permite mascarar ou substituir informações sensíveis, como dados pessoais ou comerciais. No site oficial da extensão você encontra a documentação completa e exemplos de uso, entre outras informações importantes.

Técnicas avançadas para otimizar e monitorar o desempenho do PostgreSQL

Esse artigo aborda técnicas avançadas de otimização e monitoramento de desempenho no PostgreSQL. O autor compartilha como usar ferramentas como `pg_stat_statements` para análise de consultas, como implementar estratégias de indexação como o uso de filtros Bloom e índices em expressões para otimizar a recuperação de dados. Também explica porque você deve usar jornadas do usuário em benchmarking em vez de microbenchmarks.

Savepoints em Postgres

Esse texto explora o uso de savepoints no PostgreSQL, uma funcionalidade que permite criar pontos de recuperação dentro de uma transação e tem grande importância para o controle de transações complexas. O autor explica como criá-los, liberá-los e reutilizá-los.

CAMPUSCODERS INDICAM

Fotografia de vários relógios em uma parede laranja, marcando fusos horários diferentes.

Fotografia de Vince Veras

Como o Facebook sincroniza o tempo em milhões de servidores

Esse artigo explica como o Facebook mantém a sincronização precisa do tempo em sua vasta infraestrutura de servidores. Anteriormente, a empresa adotava o Network Time Protocol (NTP) e, agora, o Precision Time Protocol (PTP), além de servidores de tempo dedicados. O autor mostra as diferenças entre as duas abordagens, detalhando a arquitetura da escolha atual.

Como usar streams em Node.js

Este guia mostra como ler e escrever streams em Node.js para processar grandes volumes de dados de forma eficiente. Ele aborda conceitos fundamentais, como a arquitetura orientada a eventos do Node.js e explica como os streams permitem o processamento de dados em pedaços, reduzindo o uso de memória.

Pessoas desenvolvedoras não deveriam confiar em ninguém (nem nelas mesmas)

Esse artigo é sobre como abstrações podem ser úteis, mas também perigosas para pessoas desenvolvedoras. Abstrações são simplificações que nos permitem pensar sobre as coisas de forma mais eficiente, mas são passíveis de falhas e podem ocasionar problemas. Por exemplo, você pensar que seu código está funcionando corretamente, mas sempre há a chance de ter um erro que ainda não foi detectado. O autor deixa recomendações sobre como lidar com essa questão.

Talvez você não precise de um efeito

Esse artigo do próprio site do React explica quando é possível evitar o uso de efeitos (Hooks como `useEffect`) ao desenvolver componentes. Evitar efeitos desnecessários pode simplificar o código, melhorar o desempenho e reduzir bugs. Você encontra exemplos de como, em muitos casos, é mais eficiente utilizar outras abordagens.

Bom retry, péssimo retry: a história de um incidente

O autor desse texto narra um incidente em que uma política inadequada de retry (tentativa de repetição) em um sistema causou uma cascata de falhas, exacerbando o problema original.

Campuscoders que contribuíram com a curadoria da semana: André Benjamim, Ederson de Lima e Marco Fornaciari 💚

Campus Code