O nome
“Rails Way App” era descritivo, mas sem graça. “Rails Whey App” mantém o mesmo som, e agora encarna o que o projeto defende.
Whey protein é o bloco mais simples e fundamental para ganhar força. Sem stacks exóticas, sem fórmulas superengenheiradas: só o nutriente essencial, aplicado com disciplina. É exatamente o que este projeto faz com Rails. Controllers, models, concerns, callbacks: os blocos do próprio framework, levados a sério.
O problema
As pessoas recorrem a service objects, interactors e arquitetura hexagonal não porque o Rails é fraco, mas porque o código Rails delas tem gosto ruim.
- Controllers gordos, sem estrutura.
- Callbacks emaranhados que ninguém tem coragem de mexer.
- God models que acumulam responsabilidades até desabar com o próprio peso.
Isso é whey sem sabor. Tecnicamente nutritivo, na prática intragável.
Quando o código tem gosto ruim, a gente procura uma saída. Parafusa camadas de arquitetura de outros paradigmas, camadas que administram a complexidade em vez de eliminá-la. Trata o Rails como algo a ser contido, e não como algo a ser bem usado.
O problema é real.O diagnóstico está errado.
A resposta não é trocar de suplemento. A resposta é fazer os fundamentos terem gosto bom.
O que é bom gosto
Bom gosto em código não é estética. Não é formatação, convenção de nomes, nem quantas linhas em branco você deixa entre os métodos.
Bom gosto é a capacidade de ver a forma essencial de um problema com tanta clareza que a complexidade acidental se dissolve. É achar a representação em que os casos especiais desaparecem, não por esperteza, mas por clareza.
Este projeto existe para provar que o bom gosto opera dentro do Rails, não fora dele.
Existe um gradiente de design dentro do framework que a maioria dos devs nunca explora: do scaffold padrão a um modelo de domínio totalmente articulado, cada ponto uma escolha deliberada e defensável. Nenhuma gem necessária. Nenhuma arquitetura importada. Só os padrões do próprio framework, vistos com clareza e aplicados com disciplina.
Visão geral completa. Os números abaixo identificam as famílias.
Cada barra é uma branch. Cor e altura mostram a ordem, não uma nota de qualidade.
Explorar branches por família
Família 1: arquitetura de controllers
Família 2: arquitetura de controllers
Família 3: estrutura de domínio
Família 4: separação de pontos de entrada
Família 5: autoridade do model
Família 6: nomes de domínio
Família 7: contextos delimitados e isolamento
O objetivo não é prescrever a arquitetura “certa”. É mostrar que o gradiente existe, que cada ponto dele é válido, e que a liberdade de andar por ele é a cara do bom design.
O Rails Way tem mais espaço do que a maioria imagina.
Por que agora
A IA transformou a geração de código em commodity. Qualquer um produz código, e o volume está explodindo. O que não explode é a capacidade de julgá-lo.
O recurso escasso é o bom gosto.
Este projeto mostra não só o que construir com Rails, mas como escolher. Como olhar para as ferramentas do framework, enxergá-las com clareza e pegar o mecanismo mais simples que resolve. Esse critério é o que os devs mais precisam hoje, e o que nenhuma ferramenta substitui.
Isso vale também para agentes de IA. Uma aplicação Rails bem estruturada não é só mais fácil de ler para pessoas. Ela é mais barata, mais rápida e mais precisa para agentes processarem. A clareza que torna o código convidativo para um dev o torna legível para uma máquina.
10/25 24/25 Medido no mesmo app, com os mesmos testes: 10/25 para agentes na 1A-fat-controller, 24/25 na 6G-named-orchestrations. Ler o relatório
A forma da prova
Este projeto não afirma sua tese. Ele a demonstra, numa série de branches, cada uma construída sobre a anterior, todas medidas contra a mesma suíte de testes de comportamento.
- Em cada etapa, os testes passam.
- Em cada etapa, a qualidade do código é medida com um número verificável.
- Em cada etapa, os tradeoffs são nomeados com honestidade.
As branches sozinhas não são o argumento. O arco é. Quem termina uma branch viu um refactor limpo. Quem percorre o arco inteiro viu a prova de que MVC escala.
O README de cada branch liga o resultado aos princípios da Constituição.
A branch é a evidência.O princípio é a afirmação.