20
Ajudamos empresas a criar produtos digitais de sucesso

A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Embed Size (px)

Citation preview

Page 1: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Ajudamos empresas a criar produtos digitais de sucesso

Page 2: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

A era “moderna” do JS e as SPA’s

Agustín Albertengo / Patrick Porto

Page 3: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)
Page 4: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

SPA (Single Page Application)

1. Uma request http carrega o HTML inicial, js e css . (/index.html)

2. O conteúdo é gerenciado no front-end em vez do back-end, os dados são consultados via API, que retorna em formato json. O servidor não renderiza HTML.

3. As rotas são gerenciadas no front-end, o back-end redireciona todas as requests para o /index.html e a App vai renderizar o conteúdo para essa url.

Características

Page 5: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Goodbye pages, welcome states.

Page 6: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

código fonte index.html:

Page 7: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Resultado após chamar /index.html:

Page 8: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Html renderizado apos chamar /index.html

Page 9: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Ferramentas para desenvolver uma SPA

● Linguagem JS (versão ES, subset): ES6, ES7, TypeScript,

CoffeeScript

● Transpilers e Polyfills: Babel, features do ES6

● Frameworks / Libs: React, Angular2, CycleJs

● Module Bundler: WebPack, Browserify, SystemJs.

● Ferramentas de Test: Mocha, Chai, Sinon, Enzyme.

● Gerenciador de Dependências: NPM, Bower, Component.

● Linter: JSHint, ESlint, TSLint.

Page 10: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

SPA (Single Page Application)

● Separa a UI do back-end. A mesma API pode ser usada para outro

aplicativo (por ex: mobile)

● Facilita a cobertura da app (testes).

● Simples de escalar

● O look & feel parece com um app mobile, muito mais suave e rápido.

Vantagens:

Page 11: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

SPA (Single Page Application)

● Curva de aprendizado forte das ferramentas (frameworks, libs, bundler)

● Mais complexidade em questões de segurança (Auth, XSS)

● Os motores de busca têm problemas para indexar o conteúdo.

● O desenvolvimento de linguagem, novas técnicas e ferramentas é muito

acelerado, difícil escolher.

Problemas:

Page 12: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Modularização

Page 13: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Por que não devo utilizar jQuery?

● O código pertence ao escopo global por padrão.

● Arquivos e módulos não possuem qualquer conexão.

● Dependências implicitamente declaradas.

● Ordem de carregamento substitui ou altera qualquer coisa.

Page 14: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Por que devo utilizar pacotes e módulos?

● O código não pertence ao escopo global por padrão.

● Cada arquivo expõe um módulo.

● Dependências explicitamente declaradas.

● Ordem de carregamento não é relevante.

Page 15: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Web Components

Page 16: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

“Um componente pode ser reutilizado diversas vezes em qualquer lugar sem sofrer alterações

acidentais por códigos externos ou modificar outros elementos”

Page 17: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Por que devo utilizar Web Components?

● O código é facilmente reutilizável

● O componente é autossuficiente

● O código possui identidade semântica

● Menos conflitos entre códigos

Page 18: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

A hora do código

Page 19: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

Considerações finais

Page 20: A era “moderna” do JS e as SPA’s (Agustín Albertengo e Patrick Porto)

www.concretesolutions.com.brblog.concretesolutions.com.br

Rio de Janeiro – Rua São José, 90 – cj. 2121Centro – (21) 2240-2030

São Paulo - Rua Sansão Alves dos Santos, 433 4º andar - Brooklin - (11) 4119-0449