Já aconteceu com você? Aquele momento em que, após resolver inúmeros problemas complexos com código, você se depara com um desafio aparentemente simples que te faz questionar tudo o que você achava que sabia sobre programação?
Foi exatamente isso que aconteceu com o Filipe Deschamps quando desenvolvia uma biblioteca chamada RSS Feed Emitter. A ideia era criar um sistema que monitorasse vários feeds RSS e emitisse eventos sempre que novos conteúdos fossem publicados. Assim, outros sistemas poderiam “escutar” esses eventos e realizar ações automaticamente, como atualizar sites ou disparar processamentos.
A falsa segurança dos testes unitários
Ele se dedicou intensamente aos testes unitários. Criou testes para todos os cenários imagináveis: conexão indisponível, endpoints que retornavam dados quebrados, servidores recusando conexão, formatos inválidos. Todos os testes passavam. Até que veio a hora de usar em um projeto real.
No primeiro momento de uso com um feed RSS diferente daqueles que havia testado, o sistema quebrou. Não era um bug complexo, era simplesmente um formato ligeiramente diferente que não havia sido previsto. Mas uma verdade se revelou: a cauda pela qual testes unitários, por mais completos que sejam, nunca são suficientes sozinhos.
A vida real é infinitamente mais criativa (e cruel) do que nossa capacidade de prever comportamentos em ambientes controlados.
Hoje, não importa quantos testes automatizados tenham passado ou quantas validações de CI/CD tenham sido bem-sucedidas, a recomendação do Filipe é sempre usar seu próprio software antes de qualquer cliente. Essa prática tem várias implicações:
- Responsabilidade direta: você é pessoalmente responsável pela qualidade do que entrega;
- Empatia com o usuário: usar sua criação te força a entender as dores e frustrações que outros usuários poderão sentir;
- Descoberta de edge cases: nenhum conjunto de testes prevê todos os cenários do mundo real. Ao usar o software, você descobre problemas que nunca teriam aparecido nos ambientes controlados;
- Validação de UX: testes automatizados validam funcionalidades; uso real valida a experiência.
Aplicando além do código
Essa lição transcendeu a programação e influenciou do Filipe em outros projetos, como o Tab News, uma plataforma comunitária que hoje reúne mais de 60.000 pessoas. Não basta criar ferramentas bonitas e funcionais tecnicamente. É preciso usá-las, viver na comunidade, entender como as pessoas realmente interagem com o que construímos.Este conteúdo é um corte do Diocast. Assista na íntegra ao episódio onde conversamos a fundo com o Filipe sobre o que realmente constitui um código de alta qualidade, debatendo aspectos cruciais como manutenção, legibilidade, otimização de desempenho e, é claro, o uso da inteligência artificial.