![](https://campuscode-site.s3-sa-east-1.amazonaws.com/artigos/CW_cabecalho_branco.jpg)
Hey! Tudo bem?
Otimizar, em qualquer área da vida, é sempre muito bem vindo. Ao aperfeiçoar um código ou uma aplicação, ganhamos tempo não apenas nosso, como pessoas desenvolvedoras, mas também potencializamos o proveito que o usuário poderá tirar. Nesta edição, selecionamos alguns artigos para você conhecer as possibilidades que a otimização de aplicações pode oferecer.
Você também vê a nova arquitetura do chat da Uber, que permite atender 3 milhões de tickets por semana, a ferramenta desenvolvida pela 37signals que passou a ser adicionada por padrão nas aplicações Rails 8, as funcionalidades do Ruby que podem fazer a diferença até para os mais experientes e a base do TypeScript, mesmo para quem usa e não tem ideia do que está fazendo.
Boa leitura!
OTIMIZAÇÃO
![Ilustração de um computador com a tela repleta de gráficos. Ao fundo, mais imagens de gráficos.](https://campuscode-site.s3.sa-east-1.amazonaws.com/newsletter/298_otimizacao.avif)
Gerado por IA.
Evitando erros ao dimensionar o back-end
Imagine o back-end de uma API RESTful suportar 1 milhão de requisições utilizando apenas 2GB de RAM, 1 CPU e uma banda de rede limitada. Parece mágica, mas, com as otimizações corretas para resolver os gargalos, essa façanha foi possível. E é isso que o autor conta neste artigo.
Dicas e truques para otimização de desempenho em Ruby
O artigo apresenta 5 dicas para otimizar o desempenho de códigos em Ruby, com recomendações sobre escolha de estruturas de dados, criação de objetos, técnicas de memoização, profiling e alternativas de implementações para melhorar o desempenho das aplicações.
Tornando uma consulta Postgres mil vezes mais rápida
Imagine que uma consulta PostgreSQL demorava cerca de 24 segundos para ser executada e, ao otimizá-la, ela passou a ser feita em menos de 30 milisegundos. Neste artigo, o autor conta como avaliou o desempenho ruim e quais alterações foram necessárias para ter um retorno mil vezes mais rápido que o inicial.
CAMPUSCODERS INDICAM
![Uma mão segura o celular tendo um carro ao fundo.](https://campuscode-site.s3.sa-east-1.amazonaws.com/newsletter/298_chat_carro_aplicativo.avif)
Um chat que atende 3 milhões de tickets por semana
O atendimento por chat ao vivo da Uber escalava de maneira insuficiente para lidar com a demanda crescente. A arquitetura com WAMP enfrentava problemas de confiabilidade, capacidade de escala e observabilidade. Este artigo conta como a nova arquitetura adotada com serviços stateless e roteamento de contatos baseado em regras, entre outros, melhorou a entrega de mensagens, a escalabilidade horizontal e a visibilidade.
Rails 8 com Kamal por padrão
Kamal, a ferramenta desenvolvida pela 37signals que simplifica o deployment de apps web através do uso de containers Docker e do reverse proxy Traefik, passou a ser adicionada por padrão nas aplicações Rails a partir da versão 8. Agora, a gem é incluída automaticamente no Gemfile e são gerados arquivos de configuração pré-definidos. Veja mais neste artigo.
Você não conhece Ruby (mais!)
Diversas novas funcionalidades foram introduzidas no Ruby ao longo dos últimos anos, como RBS para tipagem estática, pattern matching, lazy enumerators, yield_self/then para encadeamento, ranges infinitos, data classes e refinements. Este artigo traz a visão de que muitos desenvolvedores experientes ainda não adotaram tais recursos e continuam escrevendo Ruby como na versão 1.9.
Do React ao Hotwire - Parte I
Neste artigo, o autor compartilha sua experiência, culminando na transição do React para o Hotwire, um novo framework da Basecamp que roda direto no Rails. A segunda parte deste artigo fala sobre os desafios dessa transição.
Escrevo em TypeScript, mas sem entender
Ao enfrentar um bug, o autor deste artigo percebeu suas grandes lacunas nos conceitos fundamentais em Typescript. Ele decidiu investigar por conta própria conteúdos como compilação versus interpretação, tipagem e checagem de propriedades excessivas, compartilhando os principais aprendizados para ajudar outros desenvolvedores que estejam em situação semelhante.
Campuscoders que contribuíram com a curadoria da semana: André Benjamim, Diogo Oliveira, Ederson de Lima, Otávio Lins, Petra Grunheidt e Rafael Carvalho 💚