Modelos gordos, controladores magros e o padrão de design MVC

Acabei de ler umpublicação no blog isso explica o MVC com uma analogia bancária. Eu tenho alguns meses de experiência no desenvolvimento de aplicativos da web com uma estrutura MVC (CakePHP), então entendi o básico, mas comecei a ver um tema que me fez pensar que estou adotando uma abordagem falha para colocar minha lógica:

Modelos gordos, controladores magrosMantenha o máximo de lógica de negócios nos modelos possível

No meu aplicativo, os modelos são anoréxicos e os controladores são obesos. Eu tenho toda a lógica de negócios nos controladores e nada além de associações e regras de validação nos modelos.

Examinando meus controladores, agora posso identificar muita lógica que provavelmente deveria estar em um modelo:

O aplicativo possui listas, que contêm itens, e os itens podem ser classificados. A lógica de classificação que coloca a lista em ordem de classificação está em um controlador.Da mesma forma, os itens (modelo de item) também têm imagens (modelo de imagem). Cada item pode ter uma imagem padrão (designada por image_id na tabela de itens). Quando um item é exibido com suas imagens, a imagem padrão deve aparecer primeiro. Eu tenho a lógica que faz isso em um controlador.Quando uma lista é exibida, as listas relacionadas são exibidas na barra lateral. A lógica para determinar quais listas estão relacionadas está em um controlador.

Agora às minhas perguntas:

Com os exemplos que dei acima, estou no caminho certo ao pensar que essas são instâncias da lógica atualmente em um controlador que pertence a um modelo?Quais são algumas outras áreas da lógica, comuns aos aplicativos da Web, que devem entrar em modelos?Tenho certeza de que identificar esse problema e alterar meu padrão de design é metade da batalha, mas mesmo se eu decidir pegar os exemplos que dei acima e tentar mover essa lógica para um modelo, não saberia por onde começar. Alguém pode me indicar a direção certa postando algum código aqui ou vinculando-o a alguns bons recursos de aprendizado? A ajuda específica do CakePHP seria ótima, mas tenho certeza de que qualquer coisa MVC será suficiente.

questionAnswers(2)

yourAnswerToTheQuestion