Douglas Matoso • Front-end Developer • CI&T
A Evolução do Front-end
sli.do
#ciandttechsummit
DOUGLAS MATOSO
Front-end Developer na CI&T desde 2008
dmatoso.com
@doug2k1
EVOLUÇÃO DO QUÊ?
Front-end web development is the practice of producing HTML,
CSS and JavaScript for a website or Web Application so that a
user can see and interact with them directly. The challenge
associated with front-end development is that the tools and
techniques used to create the front end of a website change
constantly and so the developer needs to constantly be aware of
how the field is developing.
en.wikipedia.org/wiki/Front-end_web_development
90s: WEB SITES
Texto, imagens, links, formulários (processados no backend)
time.graphics/line/18834
LINHA DO TEMPO
Webmaster
● Layout
● Front-end
(HTML, pouco CSS, pitadas de JS)
● Backend
● Infra
● Deploy (subir no FTP?)
● Manutenção
MENINO(A) DO SITE
Dava para se safar com isto:
Este site é melhor visualizado no Internet Explorer,
com resolução 800x600 ou superior.
● Conteúdo gerado pelo usuário
● Layouts mais complexos
○ Animações (Flash), interações mais complexas,
usabilidade
● Áudio e vídeo
● Múltiplos navegadores
● Performance
● SEO
● Acessibilidade
2000s: WEB 2.0
WEB APPLICATIONS
WEB SITES
LINHA DO TEMPO
Webdesigner Developer
A SEPARAÇÃO
Webdesigner
● Layout
● Front-end
○ HTML
○ Mais CSS
○ Mais JS
○ Flash
RESPONSÁVEL PELO VISUAL
● Popularização de smartphones, tablets
○ Ambiente mais fragmentado
● Público mais exigente
● Evolução das tecnologias
○ Touch
○ Geolocalização
○ Câmera, microfone
○ Notificações
○ HTML 5 / CSS 3
2010s: MOBILE REVOLUTION
LINHA DO TEMPO
Front-end
UX / UI
Designer
Back-end
MAIS ESPECIALIZAÇÃO
FRONT-END ROADMAP
github.com/kamranahmedse/developer-roadmap
JavaScript fora do navegador…
JavaScript no backend...
JavaScript everywhere!
NODE.JS
Código de desenvolvimento ⇒ código de produção
● Análise estática (JSHint, ESLint, StyleLint)
● Minificação
● Pré-processadores de CSS
● Transpilação de JS
BUILD TOOLS
FRAMEWORKS JS… A LOT OF THEM
Adiciona novos recursos à escrita do CSS:
● Variáveis
● Funções
● Seletores aninhados
Gera CSS no final (com build tools)
CSS PRE-PROCESSORS
● Classes
● Módulos
● Arrow functions
● Iterators
● Template literals
● Promisses
● Default parameters
● Rest operator
● Destructuring
● ...
JS MODERNO - ES6/ES2015
CoffeeScript
TypeScript (tipagem estática no JS)
ClosureScript (Clojure para JS, funcional)
Elm
Kotlin
NOVAS LINGUAGENS
ES2015+, "JS do Futuro", TypeScript, Elm, etc...
ES5
(compatível com qualquer navegador)
TUDO VIRA ES5
Antes:
<script src=”jquery-1.2.1-min.js”></script>
Hoje:
“jquery”: “^1.2.1”
$ npm install
GERENCIAMENTO DE DEPENDÊNCIAS
modulecounts.com
NPM
● Relatório de cobertura
● TDD
● Integrado ao CI
Jest
TESTES AUTOMATIZADOS
● MEAN: MongoDB, Express, Angular, Node.js
● MERN: MongoDB, Express, React, Node.js
Server side rendering
● React: ReactDOMServer
● Ember: Ember Fastboot
● Vue: Vue SSR
● Angular: Angular Universal
FULL STACK
FULL STACK NO MERCADO
blog.indeed.com/2017/03/21/best-jobs-united-states-2017/
DA WEB PARA OS APPS
Tecnologias web para desenvolvimento de apps mobile
(híbridos e nativos)
É web, mas:
● tem ícone na home screen
● roda em tela cheia
● tem splashscreen
● funciona offline
● manda notificações
● tem acesso ao hardware
PROGRESSIVE WEB APPS
tableless.com.br/carreira-de-front-end-vai-morrer
Thank you!

A Evolução do Front end

Notas do Editor

  • #2 0:01:00 evolução, estado atual, papel do profissional, sli.do
  • #3 0:01:30
  • #4 0:02:30 mesma página
  • #5 0:03:30 web: repo de textos e imagens
  • #6 0:05:00 primeiras versões das tecs e ferramentas
  • #7 0:06:30 evolução da nomenclatura
  • #8 0:07:00 conexão difícil, ainda poucos gastos (compras)
  • #9 0:07:30 nuvem de termos
  • #10 0:09:00 acesso mais fácil e rápido
  • #11 0:09:30 webmails, mecanismos de busca, redes sociais, blogs
  • #12 0:11:00 primeiros frameworks, browsers
  • #13 0:11:30 front mais complexo, back também (mais dados, regras, usuários, segurança)
  • #14 0:12:30 mais pro lado "designer", criação
  • #15 0:12:45 outro marco, internet na palma da mão
  • #16 0:14:15 sempre online
  • #17 0:15:15 marcos: node e es6, explosão de ferramentas, evolução das tecnologias base
  • #18 0:16:15 designer especialista em web, fronteiras não são bem definidas (+ designer ou + dev)
  • #19 0:16:45 com o que o FE trabalha, o que ele precisa saber (base fundamental)
  • #20 0:18:15 aprofundando
  • #21 0:19:15 divisor de águas, JS no backend, mas causou grandes mudanças no FE
  • #22 0:20:45 node permitiu todo um ferramental para o front
  • #23 0:21:45 "busca de tornar o JS organizado, escalável. FWs MVC, Componentes. Piada. Está se estabilizando, com alguns frameworks apoiados por grandes empresas"
  • #24 0:23:15 css evoluiu, além da própria linguagem, mas também com pre-process...
  • #25 0:24:45 maior upgrade do JS, facilidades, mais OO e mais funcional, plano de evolução anual
  • #26 0:26:15 influenciando na própria evolução do JS. Mas, peraí, roda no navegador?
  • #27 0:27:45 Permite usar até JS do futuro (não lançado) muitas features já suportadas, evolução rápida dos navegadores
  • #28 0:28:45 ex: plugin jquery de carrossel. npm install?
  • #29 0:30:15 Veio junto com o Node. CLI e repositório. Módulos de front e back.
  • #30 0:31:15 FE mais complexo, mais regras. e2e (Selenium, Cucumber) e unitários
  • #31 0:32:15 Existe full stack? Polêmica. JS no servidor permite profissional expandir atuação.
  • #32 0:33:15 Levantamento Indeed melhores jobs. Existe demanda
  • #33 0:34:15 Outro caminho para o profissional atuar.
  • #34 0:35:15 está em alta
  • #35 0:36:45 "Provocação. Título ""click bait"". Artigo fala que tarefas repetitivas (recortar layout, conectar a uma API) serão automatizadas. Vai mudar muito (como vimos aqui), pode até mudar de nome, mas não é motivo para preocupação."
  • #36 0:37:15