Você verá que os aplicativos Rails iniciam como repositórios únicos. Os mais bem-sucedidos (Twitter, Square, muitos outros) se dividem em várias bases de código à medida que crescem nesse requisito. Essas bases de código adicionais podem ser daemons , serviços , gemas, Rails Engines ou qualquer outra coisa.
Essa refatoração em vários projetos não é feita até que seja necessário, porque o YAGNI . A bifurcação do seu projeto no dia 1 diminui o tempo de prototipagem e a velocidade da prototipagem é um dos pontos fortes do Ruby e do Rails. Você deve ter em mente que criar ou uma classe no Ruby não custa quase nada, assim como desmembrar uma classe bem projetada. Seu código Ruby puro vai viver na maior parte sob /app/
( app/models
, app/views
app/controllers
, app/helpers
) e /lib/
. Seus ativos estáticos, incluindo JS / Coffee em camadas e CSS / Sass / etc incluem /app/assets
.
Entender por que separar uma classe Ruby é tão fácil requer um pouco de leitura sobre digitação de pato e o entendimento de que as interfaces do Ruby não são tão rígidas quanto você pode estar acostumado em um ambiente menos dinâmico.
Aqui estão alguns links que podem lhe interessar:
Boa sorte com seus projetos!