![](https://campuscode-site.s3-sa-east-1.amazonaws.com/artigos/CW_cabecalho_branco.jpg)
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](https://campuscode-site.s3.sa-east-1.amazonaws.com/newsletter/300_Rails.avif)
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](https://campuscode-site.s3.sa-east-1.amazonaws.com/newsletter/300_jenga.avif)
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 💚