coding weekly #300

Newsletters - 03/Jul/2024 - por Campus Code
A sua newsletter da Campus Code • Edição 300 - Julho de 2024

Hey! Tudo bem?

Chegamos à edição de número 300! E não poderíamos deixar de lado o framework do coração para os rubistas: Ruby on Rails. Os conteúdos vão te mostrar desde experiências no desenvolvimento de aplicações Rails até a construção de uma API com limitação de taxas, entre outros assuntos.

Você também vê os desafios na arquitetura de sistemas frente a diferentes requisitos e prioridades, como contextualizar o time nem a mais nem a menos, um olhar sobre a limitação imposta pelo sistema de tipos, o papel do PID 0 no sistema Linux e o processamento de junções em tabelas de hash.

Boa leitura!

RUBY ON RAILS

Ilustração de uma locomotiva vermelha com a frente em formato de rubi

Gerado por IA.

Princípios-chave e aprendizados para Aplicações Rails

Neste artigo, o autor compartilha os principais aprendizados adquiridos ao longo de um ano desenvolvendo uma aplicação web com Rails. Ele destaca a importância dos testes automatizados para a manutenibilidade do código, apresenta algumas regras para seu uso e explica algumas práticas para sistemas de mensagens, processamento assíncrono de tarefas e padronização de funcionalidades.

Como construir uma API do Rails com limitação de taxas

Em desenvolvimento web, com certa frequência é necessário usar algumas restrições para aumentar a segurança dos projetos. Neste artigo, o autor mostra como construiu uma API do Rails com capacidade de limitar as taxas de requisições para protegê-la contra ataques através do uso de rack-attack, além de como configurar e testar.

Ruby assíncrono no Rails

Neste artigo, o autor ensina como aplicar programação assíncrona em aplicativos Ruby on Rails para torná-los mais rápidos. Ele apresenta técnicas como indexação concorrente no PostgreSQL e teste paralelizado no Rails para melhorar a performance e ressalta a importância de otimizar os fundamentos antes de aplicar assincronicidade, já que essas técnicas podem aumentar a complexidade do código.

CAMPUSCODERS INDICAM

Imagem gerada por IA de um edifício formado por blocos retangulares, que foram dispostos de forma desconexa
Minimizando a infelicidade na arquitetura

Este artigo explora os desafios e as decisões difíceis que os arquitetos de software enfrentam ao equilibrar diferentes requisitos e prioridades, oferecendo insights valiosos para a tomada de decisões na arquitetura de sistemas. Os autores explicam que a chave é encontrar soluções de trocas que possam ser aceitas e minimizem o descontentamento, mas que é impossível satisfazer completamente todos os requisitos. A capacidade de gerar alternativas razoáveis também é importante segundo o artigo, que vem da experiência em problemas semelhantes.

Como dou a quantidade certa de contexto (em qualquer situação)

Neste artigo, o autor compartilha estratégias sobre como fornecer a quantidade adequada de contexto em diferentes situações. Ele discute a importância de ser específico sobre o que é necessário, mencionar se é apenas para informação e evitar dar detalhes em excesso ou não dar clareza suficiente.

Indo além dos sistemas de tipos

Este artigo defende a ideia que os sistemas de tipos atuais têm limitações ao lidar com efeitos colaterais em programação e propõe um novo sistema que seja estático e capaz de analisar efeitos de forma independente dos tipos. Ele discute como os sistemas de efeitos podem ajudar a lidar com problemas complexos de controle de fluxo e gerenciamento de efeitos colaterais em programas.

O que é o PID 0?

O PID 0 (Process ID 0), em sistemas operacionais baseados em Linux. é a primeira tarefa criada no kernel, auxiliando no gerenciamento de energia. Este artigo explora o papel e a importância do PID 0 no gerenciamento de processos e inicialização do sistema.

Tabelas de hash simples, eficientes e robustas para processamento de junções

Neste artigo, o autor explica como implementar junções através de tabelas de hash e as otimizações criadas para isso. Ele discute os desafios e as técnicas para projetar e implementar tabelas de hashes eficientes, destacando sua importância no desempenho e na eficiência do processamento de dados em sistemas de banco de dados.

Campuscoders que contribuíram com a curadoria da semana: André Benjamim, André Kanamura e Otávio Lins 💚

Campus Code