Nos próximos meses, iniciaremos um projeto em que pegaremos um sistema que construímos para um cliente (v1) e o reconstruiremos do zero. Nosso objetivo com a v2 é torná-lo modular, para que esse cliente específico tenha seu próprio conjunto de módulos que eles usam, então outro cliente pode usar um conjunto diferente de módulos. O truque aqui é que a empresa A pode ter uma série de módulos de checkout e usuário que mudam a forma como esse sistema funciona. A empresa B pode seguir o procedimento padrão de pagamento, mas personalizar como os produtos são navegados.
Quais são algumas boas abordagens para a arquitetura de aplicativos quando você está construindo um aplicativo a partir do zero e deseja Core
compartilhar um que seja compartilhado entre todos os clientes, mantendo a flexibilidade para que qualquer coisa seja modificada especificamente para um cliente?
Eu vi os ganchos do CodeIgniter e não acho que seja uma boa solução, pois poderíamos ter 250 ganchos e ainda não é flexível o suficiente. Quais são algumas outras soluções? Idealmente, não precisaremos desenhar uma linha na areia.
fonte
RenderAction()
Eu não sou um cara de PHP, mas no lado do java-script, se você tiver muitos módulos que gostaria de manter o mais independente possível, existem vários sistemas para isso, como o RequireJS , que possui java-script módulos que declaram dependências em outros módulos e a estrutura garante que eles sejam carregados quando necessário.
As várias estruturas lá fora variam em como as dependências são declaradas, quanta manipulação de dependência é feita como uma etapa de compilação no servidor, no carregamento da página ou dinamicamente mediante solicitação e em quanto você precisa alterar a maneira como escreve seu java- roteiro.
Essas estruturas não se aplicam tanto (ou talvez todas) se a estrutura do lado do servidor estiver lidando com isso ou gerando seu script java para você, mas você pode desejar que seu script java seja independente da estrutura do lado do servidor.
Se você não possui muito java-script, mas deseja alguma modularidade, sempre pode usar funções de chamada automática anônima que lidam com dependências, ordenando as tags de script com dependências primeiro e referenciando-se registrando-se com um único objeto em o espaço para nome global. Isso pelo menos os torna quase modulares e não custa muito para implementar.
fonte
Aqui estão algumas instruções sobre como fazer o design modular: https://class.coursera.org/saas/lecture/preview/9
também isto: " SOA pode ser visto em um continuum, desde conceitos mais antigos de computação distribuída e programação modular , através de SOA, até práticas atuais de mashups, SaaS , ..."
A organização do código HMVC por si só não leva necessariamente à modularidade.
fonte