coding weekly #301

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

Hey! Tudo bem?

Com a proposta de ser “a linguagem amiga de quem programa”, Ruby ganha o coração das pessoas desenvolvedoras ao facilitar o dia a dia, indo além do que ela costuma oferecer. Um uso pouco difundido é a escrita de scripts shell, que pode ajudar a automatizar tarefas mais complexas. Nesta edição, selecionamos alguns artigos que vão te mostrar como Ruby pode te tornar mais feliz.

Você também vê as novas adições, tanto no Rails como no Sidekiq 7.3.0, como desenvolver para internets lentas, um olhar sobre o uso de módulos ao invés de microsserviços e os desafios enfrentados para trazer de volta a Tropical.rb.

Boa leitura!

RUBY

Um grande rubi lapidado sobre um apoio de madeira.

Gerado por IA.

Mensurando a coleta de Lixo no Ruby

Para liberar a memória de objetos não referenciados, o garbage collector (ou coletor de lixo, em português) interrompe a execução do Ruby e pode aumentar significativamente o tempo de resposta dos requests. Neste artigo, o autor mostra como adicionar chamadas em controllers e como medir o número e tempo total de coletas de lixo em diferentes versões da linguagem.

Ruby: uma ótima linguagem para scripts shell!

Ao contrário do que muitas pessoas pensam, Ruby pode ser muito bem utilizado para a criação de scripts shell já que oferece diversas vantagens como tipagem, construções funcionais, manipulação de arquivos e diretórios através de classes, acesso a código externo e threads de forma natural. O autor deste artigo lista essas e outras características da linguagem que a tornam mais apropriada do que Python para scripts shell complexos.

Introdução rápida ao método infinito em Ruby

Este artigo mostra o método infinito em Ruby, adicionado na versão 3.0 em 2020. O autor deixa claro que não está recomendando o método infinito como alternativa superior ao normal, e sim explorando seu potencial impacto na estrutura do código. E mostra casos em que ele pode ser usado para definir predicados, atributos computados e nomear expressões de forma a melhorar a legibilidade.

CAMPUSCODERS INDICAM

Imagem de um cilindro com diversas camadas, representando um banco de dados.
Rails adiciona o callback ActiveRecord.after_all_transactions_commit

Recentemente, o Rails teve uma nova adição, o callback ActiveRecord.after_all_transactions_commit, que permite registrar callbacks diretamente no objeto para serem executados após todas as transações do banco de dados serem confirmadas com sucesso. Essa novidade é bastante útil, principalmente para agendar tarefas em segundo plano e disparar notificações, evitando erros que ocorrem quando a tarefa é executada antes da transação ser confirmada.

Iteração e Sidekiq 7.3.0

A nova funcionalidade de tarefas iteráveis introduzida no Sidekiq 7.3.0 permite dividir trabalhos de longa duração, como o processamento em loop de grandes conjuntos de dados, em parcelas discretas controladas pelo Sidekiq. Isso evita a necessidade de reiniciar do zero caso ocorra uma falha ou reinício do servidor, uma vez que o Sidekiq pode persistir e retomar a execução a partir do ponto onde parou.

Projetando para internet lenta

Este artigo discute como os desenvolvedores de aplicativos e sites podem otimizar seus projetos para funcionar melhor em ambientes com conexão à internet muito limitada, como é o caso da Antártida, onde o autor trabalhou por um período. Ele relata seus problemas ao tentar usar diversos serviços online devido à internet latente e instável e sugere princípios de projeto que poderiam amenizar esses problemas.

Não use microsserviços, use módulos

O autor deste artigo defende que os microsserviços estão sendo utilizados de forma excessiva, mesmo quando uma arquitetura modular seria uma opção melhor na maioria dos casos. Ele explica que os microsserviços introduzem muita complexidade desnecessária em termos de depuração, latência de comunicação, versão, implantação e consistência de dados. Já módulos oferecem a mesma separação de responsabilidades sem esses problemas, bastando apenas trabalhar dentro de diretórios separados de um único projeto.

Os desafios para organizar uma conferência de Ruby/Rails

Depois de anos em lacuna, a Tropical.rb - The Latin America Rails Conference retornou. O autor do artigo discute a dificuldade de encontrar patrocinadores e vender ingressos devido aos grandes prejuízos de edições anteriores do evento. No entanto, fatores como definir o foco na tecnologia e startups, confirmar nomes importantes como palestrantes e divulgar antecipadamente o evento facilitaram a atração de um público de aproximadamente 400 pessoas.

Campuscoders que contribuíram com a curadoria da semana: André Benjamim e Diogo Oliveira. 💚

Campus Code