SlideShare uma empresa Scribd logo
Afinal, o que são
Single Page Applications
Patrick Monteiro
Formação
● Engenharia da Computação pelo IESAM
● Especialização em Desenvolvimento de Sistemas Web pelo IESAM
● Especialização em Arquitetura de Software Distribuído pela PUC Minas
Experiência
● Analista em Desenvolvimento de Sistemas na W3AS
● Desenvolvedor Web na SOLUX TI
● Desenvolvedor Web no Consórcio Troncal Belém
● Estagiário na W3AS
A evolução da
Web
A World Wide Web
● Significa “rede de alcance mundial”, também conhecida como Web ou
WWW;
● é um sistema de documentos em hipermídia que são executados na
Internet. Os documentos podem estar na forma de vídeos, sons,
hipertextos e figuras;
A World Wide Web
● Criada pelo britânico Tim Berners-Lee, com 3 ferramentas importantes:
○ um protocolo de transmissão de dados - HTTP;
○ um sistema de endereçamento próprio - URL;
○ uma linguagem de marcação, para transmitir documentos
formatador através da rede - HTML;
A Evolução
● 1.0 - Basicamente uma plataforma para Leitura(HTML);
A Evolução
● 2.0 - Tanto Leitura quanto escrita eram características.
A Evolução
3.0 - Web Semântica
O crescimento
O crescimento
Padrões de
Arquiteturas
Linha do Tempo das Arquiteturas
Fonte: https://www.slideshare.net/flashplatform/next-generation-of-frontend-architectures
Framework X Biblioteca
MVC - Model-View-Controller
Padrão arquitetural que divide a aplicação em três camadas com
tipos de componentes distintos:
● Model
● View
● Controller
MVC - Model-View-Controller
MVC - Model-View-Controller
Algumas vantagens:
● Baixo acoplamento e alta coesão entre componentes;
● Reaproveitamento de código;
● Separação de responsabilidades;
● Facilita a divisão da equipe/tarefas
● Facilita na manutenção da aplicação;
● Escalabilidade;
MVC - Alguns Frameworks
MVP - Model-View-Presenter
● Criado nos anos 90 pela Taligent (IBM);
● Derivação do MVC ;
● Tem foco na apresentação;
Características:
● Separação forte entre Apresentação e Gerenciamento de Dados;
● Simplificação dos testes unitários;
MVP - Model-View-Presenter
● Presenter
○ intermedia comunicação entre View e Model;
○ trata os dados apresentados na View;
● View
○ é passiva e se comunica apenas com o Presenter;
○ manipula eventos na interface e dispara o Presenter;
● Model
○ funciona apenas como um modelo de domínio;
MVP - Model-View-Presenter
MVVM - Model-View-ViewModel
● Criado por arquitetos de software da Microsoft;
● Derivado do MVP;
Características:
● Conceitualmente idêntico ao MVP;
● Foco na implementação de aplicações para plataforma Windows
Presentations Foundation(WPF) e Microsoft Silverlight;
MVVM - Model-View-ViewModel
● ViewModel
○ Atua como Model da View, mantendo o estado dos dados;
○ Não conhece a estrutura da View a qual está associada;
● View
○ Se comunica ao ViewModel por uma propriedade
DataContext
● Model
○ Encapsula a lógica de negócios e os dados;
○ Não faz referência diretas à View ou à ViewModel;
MVVM - Model-View-ViewModel
MVVM - Model-View-ViewModel
Fonte: http://geekswithblogs.net/dlussier/archive/2009/11/21/136454.aspx
Single Page
Applications
Single Page Application
● É uma abordagem moderna de construção de aplicações Web;
● A aplicação interage com o servidor, por requisições AJAX
trocando dados em JSON ou XML;
Single Page Application
Não leve ao pé da letra !
Ciclo de vida de páginas tradicionais
Ciclo de vida de SPA
SPA - Características Principais
● CLIENT-SIDE
○ Todos os processos são executados no lado do cliente;
○ A comunicação com o back-end é feita através de chamadas
AJAX para end-points de uma API;
○ Funciona independente do back-end, seja ele desenvolvido em
java, node, php, ruby, pytho, go, .NET,
○ Facilita a migração de tecnologias;
SPA - Características Principais
● LOAD
○ muitas vezes é feito apenas 1 vez;
○ carregamento de assets como css, javascript, imagens, bootstrap;
○ em grandes aplicações é aconselhável aplicar a técnica de Lazy
Loading;
SPA - Características Principais
● ROUTER
○ peça importantíssima no desenvolvimento de SPA’s;
○ é quem define/constrói tela para o usuário;
○ mesmo após um refresh permite que a página volte(quase) ao
seu estado anterior;
○ não confundir com o router do back-end;
○ geralmente ele muda e analisa valores após o # na barra de
enderreços(com o HTML5 não é mais necessário);
SPA - Características Principais
● ARMAZENAMENTO
○ nas SPA’s é comum salvar dados localmente no navegador do
usuário;
○ geralmente é armazenado um token e outras informações de
identificação do usuário;
○ é incomum usar cookies ou sessions para essas tarefas, sendo
mais comum usar o localStorage;
SPA - Estratégias Importantes
● Otimização do conteúdo e redução de requisições;
○ Minificação e ofuscação (CSS, JavaScript);
● Manipulação do DOM(Virtual DOM);
SPA - Problemas na arquitetura
● Histórico de navegação (Back and Forward);
● Alterações pendentes de salvamento ;
● Impede o Search Engine Optimization (SEO) ;
● Estatísticas do site ;
● Sobrecarga do cliente ;
● Problemas de segurança;
SPA - Frameworks
SPA - Vantagens no uso de Frameworks
● Eficiência
○ projetos que costumavam levar meses e centenas de linhas de
código agora podem ser alcançados muito mais rápido com
padrões e funções bem estruturadas;
● Segurança
○ as principais estruturas de javascript tem acordos de
segurança firmes e são suportadas por grandes comunidades;
SPA - Vantagens no uso de Frameworks
● Custo
○ a maior parte dos frameworks são de código aberto e
gratuitos.
SPA - Complementos para um bom
WorkFlow
● Custo
○ Babel, Browserify, Gulp, Grunt, WebPack, ESLint;
○ Ferramentas CLI agilizam um pouco o WorkFlow, mas não se
deve depender totalmente delas;
Afinal, o que são Single Page Applications

Mais conteúdo relacionado

PDF
OpenStack構築手順書 Kilo版
PPTX
【基礎編】社内向けMySQL勉強会
PDF
Spinnaker at DevOpsDays Montreal
PDF
DB Migration to Azure Database for PostgreSQL
PDF
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
PDF
Oracle Analytics Server のご紹介【2021年3月版】
PDF
OpenStack vs VMware vCloud
PPTX
Drive business outcomes using Azure Devops
OpenStack構築手順書 Kilo版
【基礎編】社内向けMySQL勉強会
Spinnaker at DevOpsDays Montreal
DB Migration to Azure Database for PostgreSQL
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
Oracle Analytics Server のご紹介【2021年3月版】
OpenStack vs VMware vCloud
Drive business outcomes using Azure Devops

Semelhante a Afinal, o que são Single Page Applications (20)

PDF
Meetup vue.js
PDF
Front end architecture
PDF
Arquitetura Web Desacoplada - FCI/Mackenzie
PPTX
A nova geração da arquitetura web para a era da nuvem
PDF
Service Oriented Front-End Architecture
PPTX
Introdução ao desenvolvimento da web.pptx
PDF
Qualidade e performance de sistemas 2.0
PPT
Evoluindo o Desenvolvimento Web: Criando Single Page Applications
PDF
Ebook AngularJS | Guia Introdutório
PDF
Palestra ASP.NET MVC
PPT
XPT Framework
PDF
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
PPTX
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
PDF
Técnicas de Programação para a Web
PDF
Apresentacao Ondaweb 2010
PPTX
Angular js
PPTX
Arquitetura de Aplicações Web Cliente e Servidor
PDF
Aula 1 ASP.NET Core com arquitetura MVC
PPTX
PPT
Qcon 2013 - Walmart Frontend Solution using Node.js
Meetup vue.js
Front end architecture
Arquitetura Web Desacoplada - FCI/Mackenzie
A nova geração da arquitetura web para a era da nuvem
Service Oriented Front-End Architecture
Introdução ao desenvolvimento da web.pptx
Qualidade e performance de sistemas 2.0
Evoluindo o Desenvolvimento Web: Criando Single Page Applications
Ebook AngularJS | Guia Introdutório
Palestra ASP.NET MVC
XPT Framework
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
Técnicas de Programação para a Web
Apresentacao Ondaweb 2010
Angular js
Arquitetura de Aplicações Web Cliente e Servidor
Aula 1 ASP.NET Core com arquitetura MVC
Qcon 2013 - Walmart Frontend Solution using Node.js
Anúncio

Mais de Patrick Monteiro (6)

PPTX
Quasar Framework - Front end de alto desempenho
PPTX
Quasar Framework - Uma visão Geral
PPTX
Solucionando a Teoria do Caos com Cypress.io
PDF
Introdução ao codeigniter
PDF
Novidades do http 2.0
PDF
DESENVOLVIMENTO DE APLICAÇÕES WEB
Quasar Framework - Front end de alto desempenho
Quasar Framework - Uma visão Geral
Solucionando a Teoria do Caos com Cypress.io
Introdução ao codeigniter
Novidades do http 2.0
DESENVOLVIMENTO DE APLICAÇÕES WEB
Anúncio

Último (9)

PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Tipos de servidor em redes de computador.pptx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Utilizando code blockes por andre backes
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Tipos de servidor em redes de computador.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Eng. Software - pontos essenciais para o início
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Manejo integrado de pragas na cultura do algodão
Viasol Energia Solar -Soluções para geração e economia de energia
Utilizando code blockes por andre backes
Termos utilizados na designação de relação entre pessoa e uma obra.pdf

Afinal, o que são Single Page Applications

  • 1. Afinal, o que são Single Page Applications Patrick Monteiro
  • 2. Formação ● Engenharia da Computação pelo IESAM ● Especialização em Desenvolvimento de Sistemas Web pelo IESAM ● Especialização em Arquitetura de Software Distribuído pela PUC Minas
  • 3. Experiência ● Analista em Desenvolvimento de Sistemas na W3AS ● Desenvolvedor Web na SOLUX TI ● Desenvolvedor Web no Consórcio Troncal Belém ● Estagiário na W3AS
  • 5. A World Wide Web ● Significa “rede de alcance mundial”, também conhecida como Web ou WWW; ● é um sistema de documentos em hipermídia que são executados na Internet. Os documentos podem estar na forma de vídeos, sons, hipertextos e figuras;
  • 6. A World Wide Web ● Criada pelo britânico Tim Berners-Lee, com 3 ferramentas importantes: ○ um protocolo de transmissão de dados - HTTP; ○ um sistema de endereçamento próprio - URL; ○ uma linguagem de marcação, para transmitir documentos formatador através da rede - HTML;
  • 7. A Evolução ● 1.0 - Basicamente uma plataforma para Leitura(HTML);
  • 8. A Evolução ● 2.0 - Tanto Leitura quanto escrita eram características.
  • 9. A Evolução 3.0 - Web Semântica
  • 13. Linha do Tempo das Arquiteturas Fonte: https://www.slideshare.net/flashplatform/next-generation-of-frontend-architectures
  • 15. MVC - Model-View-Controller Padrão arquitetural que divide a aplicação em três camadas com tipos de componentes distintos: ● Model ● View ● Controller
  • 17. MVC - Model-View-Controller Algumas vantagens: ● Baixo acoplamento e alta coesão entre componentes; ● Reaproveitamento de código; ● Separação de responsabilidades; ● Facilita a divisão da equipe/tarefas ● Facilita na manutenção da aplicação; ● Escalabilidade;
  • 18. MVC - Alguns Frameworks
  • 19. MVP - Model-View-Presenter ● Criado nos anos 90 pela Taligent (IBM); ● Derivação do MVC ; ● Tem foco na apresentação; Características: ● Separação forte entre Apresentação e Gerenciamento de Dados; ● Simplificação dos testes unitários;
  • 20. MVP - Model-View-Presenter ● Presenter ○ intermedia comunicação entre View e Model; ○ trata os dados apresentados na View; ● View ○ é passiva e se comunica apenas com o Presenter; ○ manipula eventos na interface e dispara o Presenter; ● Model ○ funciona apenas como um modelo de domínio;
  • 22. MVVM - Model-View-ViewModel ● Criado por arquitetos de software da Microsoft; ● Derivado do MVP; Características: ● Conceitualmente idêntico ao MVP; ● Foco na implementação de aplicações para plataforma Windows Presentations Foundation(WPF) e Microsoft Silverlight;
  • 23. MVVM - Model-View-ViewModel ● ViewModel ○ Atua como Model da View, mantendo o estado dos dados; ○ Não conhece a estrutura da View a qual está associada; ● View ○ Se comunica ao ViewModel por uma propriedade DataContext ● Model ○ Encapsula a lógica de negócios e os dados; ○ Não faz referência diretas à View ou à ViewModel;
  • 25. MVVM - Model-View-ViewModel Fonte: http://geekswithblogs.net/dlussier/archive/2009/11/21/136454.aspx
  • 27. Single Page Application ● É uma abordagem moderna de construção de aplicações Web; ● A aplicação interage com o servidor, por requisições AJAX trocando dados em JSON ou XML;
  • 28. Single Page Application Não leve ao pé da letra !
  • 29. Ciclo de vida de páginas tradicionais
  • 30. Ciclo de vida de SPA
  • 31. SPA - Características Principais ● CLIENT-SIDE ○ Todos os processos são executados no lado do cliente; ○ A comunicação com o back-end é feita através de chamadas AJAX para end-points de uma API; ○ Funciona independente do back-end, seja ele desenvolvido em java, node, php, ruby, pytho, go, .NET, ○ Facilita a migração de tecnologias;
  • 32. SPA - Características Principais ● LOAD ○ muitas vezes é feito apenas 1 vez; ○ carregamento de assets como css, javascript, imagens, bootstrap; ○ em grandes aplicações é aconselhável aplicar a técnica de Lazy Loading;
  • 33. SPA - Características Principais ● ROUTER ○ peça importantíssima no desenvolvimento de SPA’s; ○ é quem define/constrói tela para o usuário; ○ mesmo após um refresh permite que a página volte(quase) ao seu estado anterior; ○ não confundir com o router do back-end; ○ geralmente ele muda e analisa valores após o # na barra de enderreços(com o HTML5 não é mais necessário);
  • 34. SPA - Características Principais ● ARMAZENAMENTO ○ nas SPA’s é comum salvar dados localmente no navegador do usuário; ○ geralmente é armazenado um token e outras informações de identificação do usuário; ○ é incomum usar cookies ou sessions para essas tarefas, sendo mais comum usar o localStorage;
  • 35. SPA - Estratégias Importantes ● Otimização do conteúdo e redução de requisições; ○ Minificação e ofuscação (CSS, JavaScript); ● Manipulação do DOM(Virtual DOM);
  • 36. SPA - Problemas na arquitetura ● Histórico de navegação (Back and Forward); ● Alterações pendentes de salvamento ; ● Impede o Search Engine Optimization (SEO) ; ● Estatísticas do site ; ● Sobrecarga do cliente ; ● Problemas de segurança;
  • 38. SPA - Vantagens no uso de Frameworks ● Eficiência ○ projetos que costumavam levar meses e centenas de linhas de código agora podem ser alcançados muito mais rápido com padrões e funções bem estruturadas; ● Segurança ○ as principais estruturas de javascript tem acordos de segurança firmes e são suportadas por grandes comunidades;
  • 39. SPA - Vantagens no uso de Frameworks ● Custo ○ a maior parte dos frameworks são de código aberto e gratuitos.
  • 40. SPA - Complementos para um bom WorkFlow ● Custo ○ Babel, Browserify, Gulp, Grunt, WebPack, ESLint; ○ Ferramentas CLI agilizam um pouco o WorkFlow, mas não se deve depender totalmente delas;