Question - What makes an application complex ?
Resposta - O uso da palavra 'complexo' na própria pergunta. Portanto, uma tendência comum será buscar uma solução complexa desde o início.
Question - What does the word complex means ?
Resposta - Qualquer coisa que seja desconhecida ou parcialmente compreendida. Exemplo: A teoria da gravidade ainda hoje é COMPLEXA para mim, mas não para Sir Isaac Newton, que a descobriu em 1655.
Question - What tools can I use to deal with complexity ?
Resposta - Compreensão e simplicidade.
Question - But I understand my application . Its still complex ?
Resposta - Pense duas vezes, porque compreensão e complexidade não coexistem. Se você entende um aplicativo enorme e enorme, tenho certeza de que concordará que nada mais é do que uma integração de unidades pequenas e simples.
Question - Why all of the above philosophical discussion for a question on
Single Page Application (SAP)?
Resposta - Porque,
-> SPA não é algum tipo de tecnologia de núcleo recém-inventada para a qual precisamos reinventar a roda de muitas coisas que estamos fazendo no desenvolvimento de aplicativos.
-> É um conceito impulsionado pela necessidade de melhor desempenho, disponibilidade, escalabilidade e capacidade de manutenção das aplicações web.
-> É um padrão de design identificado recentemente, portanto, entender o SPA como um padrão de design ajuda muito na tomada de decisões informadas sobre a arquitetura de um SPA.
-> No nível raiz, nenhum SPA é complexo, porque depois de entender as necessidades de um aplicativo e o padrão do SPA, você perceberá que ainda está criando um aplicativo, praticamente da mesma forma que fazia antes, com algumas modificações e reorganizações na abordagem de desenvolvimento.
Question - What about the use of Frameworks ?
Resposta - Frameworks são código / solução padrão para alguns padrões comumente identificados e genéricos, portanto, podem retirar x% (variável, com base no aplicativo) da carga do desenvolvimento do aplicativo, mas não se deve esperar muito deles, especialmente para heavy e aplicações crescentes. É sempre um bom caso ter controle total da estrutura e do fluxo do aplicativo, mas o mais importante é o código para ele. Não deve haver nenhuma área cinza ou preta no código do aplicativo.
Question - Can you suggest one of the many approaches to SPA architecture ?
Resposta - Pense em sua própria estrutura com base na natureza de sua aplicação. Categorize os componentes do aplicativo. Procure uma estrutura existente que seja próxima à sua estrutura derivada, se você a encontrar, use-a; se não a encontrar, sugiro que prossiga com a sua própria. A criação da estrutura é um grande esforço inicial, mas produz melhores resultados a longo prazo. Alguns componentes básicos em minha estrutura de SPA serão:
Fonte de dados: modelos / coleções de modelos
Marcar para apresentar dados: Modelos
Interação com o aplicativo: Eventos
Captura de estado e navegação: roteamento
Utilitários, widgets e plug-ins: bibliotecas
Me diga se isso ajudou de alguma forma e boa sorte com sua arquitetura de SPA !!