Práticas recomendadas para particionar o código do modelo em partes lógicas no MVC? Qual é o melhor?

Eu sou novo no MVC, mas pelo que aprendi até agora (por exemplo,aqui, por ScottGu) deve-se aspirar a "controladores magros" em vez de "gordos".
Acrescente a isso o fato de que as visualizações são inerentemente finas e você obterámuito de código no seu modelo.

Então, minha pergunta é: como você particiona o código no seu modelo em diferentes partes lógicas para reduzir a complexidade?
Você usa a camada de acesso a dados e a camada lógica de negócios no próprio modelo (que eu acho que ainda conteria muito código), ou existem maneiras melhores de fazer isso?

Obrigado.

questionAnswers(4)

yourAnswerToTheQuestion