Eduardo, eu entendo sua preocupação: você quer escrever menos e o Angular está te obrigando a escrever mais. Mais nem sempre escrever mais código é ruim, principalmente neste caso.
Em um projeto grande em Angular, quando abro um módulo ou um controller, eu sei justamente o que ele faz porque ele tem que ter uma responsabilidade bem definida, além disso, sei logo de cara todas as suas dependências. Sei tudo aquilo que é necessário para aquele código funcionar (logo na primeira linha).
Se você tasca tudo em $rootScope, eu já não consigo ver com clareza no seu código quais são as dependências para aquele código funcionar, vejo apenas a injeção de $rootScope
. Mas o que queremos dele? Tem tanta coisa lá! Ai começa a manutenção e legibilidade do seu código ficar comprometida.
Uma analogía pode ajudá-lo. Imagine que você precise de um forno para esquentar sua comida. Injetamos o forno dentro de um módulo. Quem quiser esquentar comida, injetada aquele forno. Se dar um problema, basta consertar o forno.
Agora, imagine que alguém, além de precisar de um forno precise de uma batedeira, mas nem todos precisam de uma batedeira. Perfeito, em um módulo injeto forno e batedeira e quem precisa só de forno eu injeto forno. Daí, deu um problema na batedeira. Afetará quem em meu sistema? Só quem depende de batedeira, porque quem depende só de forno não é afetado.
Colocar as coisas no $rootScope
é fazer com que ele seja um FornoBatedeira. Se um controller precisa apenas do forno, ele receberá um FornoBatedeira
. Até ai tudo bem, porque ele vai conseguir usar o forno mesmo sem ter interesse em usar a batedeira. Agora, e se dá pau no motor da batedeira? Tudo estará com problema e mesmo aqueles que só dependem do forno, ficarão sem forno só porque deu problema na batedeira. Forma clássica de gerar bugs e problema de manutenção em sistemas.
Espero ter ajudado.