1 de abril
Apps
113 visualizações

Aplicação Web comum VS Aplicação Web SPA

Aplicações web comuns trabalham com mecanismos de template de frameworks back-end ou simplesmente misturam dados e layout para apresentar as páginas. Já as Aplicações SPA trabalham em componentes e separam camada de dados da camada de apresentação.

Aplicações Web comuns realizam um fluxo de atividades de visualização e requisição HTTP, com algumas interações dinâmicas via JavaScript (jQuery). Essas aplicações são baseadas em ações síncronas, sem preocupação com performance ou experiência do usuário. A arquitetura de Aplicações Web comuns costuma ser bastante simples:

  • HTML: marcação de elementos
  • CSS: estilização de elementos – layout, fontes, cores…
  • JavaScript: pequenas interações no navegador
  • Navegador cliente: realiza requisições HTTP ao servidor Web
  • Servidor de Banco de Dados: armazena toda a informação do sistema
  • Servidor Web: para processar uma resposta do banco de dados e devolver uma resposta ao navegador

HTML, CSS e JavaScript juntas compõem o Front-End e são interpretadas por qualquer navegador. Os Servidores são a parte que conhecemos por Back-End. Encontramos, então, pelo menos dois problemas elementares nesse modelo comum:

  • O modelo de Aplicações Web comum sobrecarrega o servidor (Back-End) com responsabilidades que deveriam ser exclusivas do navegador (Front-End), solicitando que o mesmo processe toda a parte visual juntamente com os pacotes de resposta.
  • Nesse modelo, não é de praste reutilizar as mesmas interfaces/funções para servir outros sistemas;
  • Mas existem motivos para usar jQuery. Entenda o que explico nesse outro artigo.

Passamos então a rever a produtividade para o desenvolvimento e a performance final de produtos criados com este modelo de Aplicações Web comuns com muitas controvérsias. Para solucionar isso, já existem diversos frameworks populares de Aplicações Web SPA – Aplicações de Página Única – que são a solução arquitetural mais plausível frente aos novos desafios de desenvolvimento. A solução agora é clara: separar a parte de dados e lógica (Back-end) da parte visual (Front-End), permitindo que cada uma exerça sua função exclusivamente.

Aplicações SPA são compiladas para trabalhar requisições/respostas assíncronas, criando-se distribuições de software com interfaces super-leves baseadas em componentes, com mecanismos para cache massivo no navegador cliente. Enquanto a parte de lógica e dados é delegada a uma API segura, que nada mais é que um outro sistema separado, com a função exclusiva fornecer dados e responder às requisições da SPA.

Essa mesma API criada irá servir dados a outros APPs do negócio, uma vez que já foram criadas rotas fornecimento/consumo de informações do banco de dados. Percebemos então múltiplas outras possibilidades dentro do paradigma SPA + API que antigamente não eram tão adotadas pela comunidade de desenvolvimento.

Conclusão

Aplicações Web SPA são melhores do que Aplicações Web comuns nos quesitos principais de aplicações web:

  • Separação de responsabilidades
  • Escalabilidade
  • Manutenção
  • Performance
  • Segurança

Não concorda? Deixe seu comentário!

Complementar, contribuir, comentar!

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *


Um pouco sobre o autor

Matteus Barbosa - Desenvolvedor Web
                               
Trabalho como Desenvolvedor web desde 2013 e atualmente faço parte do quadro da Symplicity. Também atuo em projetos como profissional autônomo. Para saber da minha experiência, acesse meu Currículo, meu Portfólio, a relação de Referências de Clientes ou ainda a Lista de Serviços. As propostas de serviço são iniciadas com conversas informais, seguidas da coleta de requisitos, elaboração do cronograma e por fim a proposta de orçamento. Todas as etapas são acompanhados de perto via ferramenta online e videoconferências. Os pagamentos são registrados com entrega de notas fiscais. Presto serviços de projeto, desenvolvimento e manutenção de sistemas baseados nos mais diversos frameworks.