média a moderada. - Aplicações com muitas funcionalidades. - Aplicações com muitas regras de negócio. - Aplicações com lógica de domínio complexas. - Aplicações que pretendem evoluir - Aplicações de ‘longo prazo’
FÓRUM deve carregar uma lista dos últimos posts da aplicação (do módulo BLOG). BLOG e FÓRUM são módulos separados, mas agora eles precisam se comunicar. Como fica o reúso deles? Além disso, ambos precisam do módulo de USUÁRIOS....
comunicação entre usuários (que também podem ser outras aplicações) e as outras camadas. - A camada de aplicação não tem intenção de ser portável para outras plataformas e tecnologias, visto que uma vez centralizadas as regras no domínio, a camada de aplicações passa a ser fina. Camada de I/O do Software Comumente é a camada HTTP, mas também pode ser uma camada acessível via terminal. Pode ser considerada uma camada “burra”, não possui regras de negócio.
repositórios e models - Camada de Pagamentos - Sistema de Notificações - Qualquer coisa que possa ser transformada em um pacote de uso genérico. Pacotes ‘in-house’. Classes que não se encaixam na camada de domínio, existem para centralizar esse tipo de rotina. Podem ser facilmente distribuídos como pacotes composer.