Hey! Tudo bem?
Em desenvolvimento web, testes são fundamentais para garantir que as aplicações funcionem corretamente e atendam aos requisitos de usuários. Há alguns tipos de testes com finalidades diferentes, e incorporar uma combinação deles durante o desenvolvimento ajuda a assegurar a qualidade e a confiabilidade do software. Selecionamos alguns artigos para aprofundar no tema.
Você também vê por que um fluxo de deploy lento causa reuniões, como criar um sistema para migrações de dados melhor e escalável, como a redundância e persistência podem contribuir para melhorar a disponibilidade de aplicativos, o relato detalhado da criação um sistema robusto de sincronização de dados em Rails e o que é Rack.
Boa leitura!
TESTES
A pirâmide de testes
Esse artigo orienta a automação de testes em camadas, onde cada camada tem um papel importante, priorizando testes rápidos e confiáveis na base e limitando os mais complexos. O autor aborda o tema em JAVA, incluindo detalhamento em 5 frameworks, mas o conceito pode facilmente ser expandido para uso em outras linguagens.
Aprenda Go com testes
Esse é um guia prático para aprender Go aplicando TDD (Test-Driven Development). Ele cobre desde os fundamentos do Go até o desenvolvimento de aplicações robustas, utilizando testes para verificar e documentar funcionalidades. O material é útil tanto para iniciantes em Go quanto para pessoas desenvolvedoras que desejam aprimorar suas habilidades em testes.
Testes e2e em React com Cypress
O campuscoder Eduardo Gris explica, nesse texto, como realizar testes end-to-end (E2E) em React usando o Cypress, abordando a estrutura dos testes, como acessar páginas, buscar elementos e interagir com eles. Inclui exemplos práticos de testes e boas práticas.
CAMPUSCODERS INDICAM
Fluxo de deploy lento causa reuniões
Em vez de ver as reuniões como causadoras de atrasos na entrega de código, essa reflexão sugere que elas podem ser uma maneira de gerenciar a capacidade limitada de mudanças por implantação.
Um sistema para migrações de dados melhor e escalável
Esse artigo discute a criação de um sistema escalável para migrações de dados, destacando desafios comuns e como superá-los. Ele explora o design de um sistema eficiente, incluindo etapas para planejamento, execução e monitoramento de migrações, além de práticas recomendadas para minimizar interrupções e maximizar a confiabilidade.
Melhorando a disponibilidade de aplicativos: redundância e persistência
Esse é o segundo artigo sobre como melhorar a disponibilidade de aplicações, e o autor aborda a redundância como o primeiro passo para este objetivo. Ele mostra estratégias para lidar com falhas e destaca os desafios de consistência em sistemas de banco de dados redundantes.
Criando um sistema robusto de sincronização de dados em Rails
Nesse texto, um desenvolvedor da Zipline revisa a jornada do time de desenvolvimento da empresa para construir um serviço satélite robusto e escalonável, chamado ZipIO, para sincronização de dados, integrando várias aplicações de terceiros com requisitos exclusivos.
O que é Rack?
Rack é um protocolo que padroniza a comunicação entre servidores Rack (como Puma, Thin, Unicorn), aplicações Rack (como Ruby on Rails e Sinatra) e middleware Rack. O autor detalha os componentes do Rack, como servidores, aplicações e middleware, e como eles se comunicam entre si usando um ambiente de execução comum.
Campuscoders que contribuíram com a curadoria da semana: André Benjamim, Eduardo Gris, João do Vale e Petra Grunheidt 💚