SlideShare uma empresa Scribd logo
1 de 111
Baixar para ler offline
ANA LUIZA BASTOS
github.com/anabastos
@naluhh
@anapbastos
Software Developer na Quanto e
cientista da computação pela
PUC-SP
anabastos.me
JSLADIES
fb.com/jsladiesbr
twitter.com/jsladiessp
meetup.com/JsLadies-BR
LAMBDA.IO
t.me/lambdastudygroup
github.com/lambda-study-group
meetup.com/Lambda-I-O-Sampa-
Meetup
NAVEGADORES POR DE
BAIXO DOS PANOS
Estrutura high level do navegador
Fluxo renderização de paginas web
Otimizações de critical render path
Qual a função do navegador?
Apresentar o conteúdo requisitado de
um servidor de acordo com a
especificação do HTML CSS(W3C) e
servindo em uma janelinha
COMPONENTES PRINCIPAIS DO
NAVEGADOR
USER INTERFACE
BROWSER ENGINE
RENDERING ENGINE
NETWORKING
JS
INTERPRETER
UI BACKEND
USER INTERFACE
BROWSER ENGINE
RENDERING ENGINE
NETWORKING
JS
INTERPRETER
UI BACKEND
USER INTERFACE
USER INTERFACE
BROWSER ENGINE
RENDERING ENGINE
NETWORKING
JS
INTERPRETER
UI BACKEND
BROWSER ENGINE
Intermedia UI e a engine de renderização
Responsavel por persistência dados(Cookies, LocalStorage,
IndexedDB).
Web APIs(canvas, WebSocket, Animation, WebWorkers,
WebGL)
USER INTERFACE
BROWSER ENGINE
RENDERING ENGINE
NETWORKING
JS
INTERPRETER
UI BACKEND
RENDERING ENGINE
WEBKIT GECKO BLINK TRIDENT
THE MAIN FLOW
anabastos.me
USER INTERFACE
BROWSER ENGINE
RENDERING ENGINE
NETWORKING
JS
INTERPRETER
UI BACKEND
Parsear o URL(procolo, dominio)
Request DNS(anabastos.me => 63.245.208.161)
Abre uma conexão TCP
Envia uma requisição HTTP
SERVERZINHO
HTTP/1.1 200 OK
Content-Type: text/html RESPONSE
SERVERZINHO
HTTP/1.1 200 OK
Content-Type: text/css RESPONSE
O conteúdo requisitado é carregado em
pequenos chunks.
CONCURRENT REQUESTS
style.css index.html
dog.png britneySpears-
toxic.mp3
?????
FLUXO DE
RENDERIZAÇAO
h1 [] [ text “Olá mundo”]
p [ class =”alert”] [ text “tudo bem?”]<h1>Olá</h1>
<img src=”dog.png”>
h1 [] [ text “Olá mundo”]
p [ class =”alert”] [ text “tudo bem?”]h1 {
color: red;
}
BYTES
3C 62 6F 64 79 3E 48 65 6C 6C 6F 2C 20
3C 73 70 61 6E 3E 77 6F 72 6C 64 21 3C 2F
21 73 70 61 6E E 77 6F 72 6C 64 21 3C 2F 21
73 70 61 6E E 77 6F 72 6C 64 21 3C 2F 21 73
70 61 6E 3C 62 6F 64 79 3E 48 65 6C 6C 6F
2C 20 3C 73 70 E 77 6F 72 6C 64 21 3C 6E E
77 6E E8 77 B2 6E E 77 6E E8 77 B2 B1
CHARACTERS(UTF-8)
<html><head></head>
<body>
<h1>Olá</h1>
<p>tudo bem?</p>
</body>
</html>
PARSER
Construção da árvore de renderização
PARSEAR
Parsear significa traduzir uma estrutura para algo que o
código possa usar.
O resultado geralmente é um árvore de nós que
representam a estrutura dos documentos
GRAMMARS
REGRAS DE SYNTAX QUE O DOCUMENTO DEVE SEGUIR DE
ACORDO COM A LINGUAGEM
TODA LINGUAGEM TEM UMA GRAMATICA
DETERMINISTICA(VOCABULARIO)
ISSO SE CHAMA “CONTEXT FREE GRAMMAR”
A engine começa a parsear o HTML e
converte-lo a “Nós da DOM”
Esses DOM nós se tornam uma arvore
chamada “content tree”.
CHARACTERS(UTF-8)
<html><head>...</head> <body> <h1>Olá
Intercon</h1>
<p>tudo bem?</p></body></html>
CONSTRUÇÅO DE
ÁRVORE
TOKENIZAÇÅO
ANALISE LEXICA
ANALISE SINTATICA
{PARSER
ANALISE LEXICA
(SE O VOCABULARIO FAZ SENTIDO)
ANALISE SINTATICA
(SE FAZ SENTIDO)
Oi
Ash87h12d
Oi tudo bom?
? oi tudo
ANALISE LEXICA
Com as regras da gramática quebra o
código em tokens internamente que
definem suas propriedades e regras.
Eu vou no intercon
Pronome Verbo Contração Substantivo
Dentro do HTML tenho inicio de tags, fim de
tags, nomes de tributos e valores de
atributos
<body>Hello</body>
startTag Text endTag
Eu vou no intercon <body>Hello</body>
HTML
BODY
‘Hello’
?
h1 [] [ text “Olá mundo”]
p [ class =”alert”] [ text “tudo bem?”]<h1>Olá</h1>
<img src=”dog.png”>
<h1>
</h1>
l
á
StartTag: h1
EndTag: h1
Character Character
Character
O
TOKENS
<img>
ImageTag
<htm>
span { clor: #FFFF }
consolr.log
Esses tokens são enviados para o construtor da
árvore que os reconhece e monta a nossa DOM.
ANALISE SINTATICA
É responsável por construir uma árvore de
nós analisando se a estrutura do
documento está de acordo com as regras
sintáticas
HTMLHtmlElement
HTMLBodyElement
HTMLHeaderElement
HTMLHeadElement
Olá
<h1>
</h1>
l
á
O
<img>
HTMLImageElement
h1 [] [ text “Olá mundo”]
p [ class =”alert”] [ text “tudo bem?”]
<div>
<h1>Olá</h1>
<div>
<img src=”dog1.png”>
<img src=”dog2.png”>
</div>
</div>
HTMLHtmlElement
HTMLBodyElement HTMLHeadElement
HTMLHeaderElement
Olá
HTMLDivElement
HTMLImageElement
HTMLDivElement
HTMLImageElement
O resultado final de todo esse processo é o Document Object
Model, ou "DOM", da nossa página simples, que é usado pelo
navegador para todos os demais processamentos da página.
BYTES
CHARACTERS
CONSTRUÇÅO DE
ÁRVORE
TOKENIZAÇÅO
Enquanto a DOM estava sendo renderizada nosso style.css é
encontrado referenciado em nosso head.
Assim como o HTML precisamos converter o CSS pelo mesmo
processo desta vez criando um “CSS Object Model” ou CSSOM
“Flex” e o”Bison” são parser generators do WebKit para parsear
automaticamente de arquivos com gramática CSS.
As regras de objetos CSS contêm seletores e a declaração dos
objetos correspondentes a gramática CSS.
h1 [] [ text “Olá mundo”]
p [ class =”alert”] [ text “tudo bem?”]
h1 {
color: red
}
CSSStyleElement
CSSRule
Selectors
h1
Declaration
Color red
No momento de calcular os estilos da página o navegador começa
com a regra mais aplicável(body) e logo em seguida vai refinando
para as regras mais específicas.
BYTES
CHARACTERS
CONSTRUÇÅO DE
ÁRVORE
TOKENIZAÇÅO
JAVASCRIPT
CSS
DOM
CSSDom
Com a DOM e a CSSOM juntos o navegador consegue
criar a árvore de renderização.
O navegador pinta cada nó da pagina.
Todo esse processo toma tempo e pode impactar na
performance da pagina web.
DOM
CSSDom
Render
Tree
ATTACHMENT
BODY
IMGH1
Color: Red;
HEAD
HTML
RENDER TREE
LAYOUT / REFLOW
Layout é o processo recursivo que começa da raiz da
arvore(<html>) e continua recursivamente por toda a
hierarquia do HTML computando informação geométrica de
que cara render requer
Dando as exatas coordenadas de onde cada nó deve aparecer
na tela.
BODY
IMGH1
Color: Red;
HEAD
HTML
RENDER TREE
Posição: (0,0)
Dimensão: Viewport
Dimensão: Block
USER INTERFACE
BROWSER ENGINE
RENDERING ENGINE
NETWORKING
JS
INTERPRETER
UI BACKEND
PAINTING
A camada UI Backend tem o papel de atravessar cada
elemento da render tree desenhando usando toda a UI da
página.
Olá
BYTES
CHARACTERS
CONSTRUÇÅO DE
ÁRVORE
TOKENIZAÇÅO
JAVASCRIPT
USER INTERFACE
BROWSER ENGINE
RENDERING ENGINE
NETWORKING
JS
INTERPRETER
UI BACKEND
SPIDERMONKEY V8
O javascript pode criar e modificar todo o DOM ou o
CSSOM.
Quando o analisador do HTML encontra uma tag “script”
ela para toda a construção da DOM e só retoma quando
conclui a execução.
Para melhorar a experiencia do usuario o engine de
renderização vai tentar mostrar o conteúdo na tela assim
que possível então não espera que outro HTML seja
parseado até começar a construir a página
OK
DE QUE ISSO
IMPORTA?
CRITICAL
RENDER PATH
Série de eventos envolvendo
baixar resources html css e
scripts, processar e renderizar o
primeiro pixel na tela.
Se a pagina html contêm algum script altamente
bloqueante o render start, o tempo levado para
receber o primeiro byte de dados para o URL
primário, vai ser atrasado
A primeira visualização da página ou o que o
usuário vê é crítica para experiência do
usuário.
Tentar otimizar cada passo no critical render
path vai acelerar o processos de renderização
OTIMIZAR?
PRIORIDADES
Otimizando a ordem de cada recurso crítico
baixado e fazendo lazy-loading recursos não
críticos podemos minimizar o tempo de total do
critical render path.
Digamos que você tem um arquivo Javascript:
<script src="test.js"></script>
Esse script também é bloqueante na renderização do navegador
pois aguarda até que o recurso seja retornado.
ASYNC vs DEFER
<script src="javascript.js" async></script>
Indica que é um asset não bloqueante então deve ser
executado de forma assíncrona(coisas pequenas ou
prioritárias).
<script src="javascript.js" defer></script>
Indica que o script só deve ser executado depois de toda a DOM
ser parseada.
Tanto o HTML quanto o CSS são recursos bloqueantes, ou seja,
não existe sem renderização sem que ambos tenham uma
arvore de renderização.
MEDIA CSS
<link href="style.css" rel=”stylesheet”>
Bloqueia a renderização do navegador até que o recurso seja retornado.
<link href="style.css" rel=”stylesheet”
media=”orientation:portrait”>
Dependendo da orientação do dispositivo bloqueia a renderização do
navegador até que o recurso seja retornado.
<link href="style.css" rel=”stylesheet” media=”print”>
Só aplica o CSS quando a página está sendo já gravada. Portanto é não
bloqueante.
PRELOAD vs
PREFETCH
<link rel=”preload”>
Força o navegador a priorizar recursos que não devem ser
bloqueados
<link rel=”prefetch”>
Avisa o navegador que recurso até é importante em futuras
navegações mas não deve ser priorizado
INITIAL
PAYLOAD
Minimizar o tamanho dos bytes de
resources críticos pode reduzir o
overhead no processo de
renderização
IMAGENS
Existem técnicas de otimização de imagens para reduzir
o load time da página(compressão, escala, CSS sprites)
Prefira efeitos CSS como sombras ou gradientes para
evitar imagens.
Diminuir o tamanho do
código de bibliotecas
React -> Preact
Ramda -> Rambda
Lodash -> UnderWater
Immutable -> Immutable-Light
Diminuir o tamanho
dos pacotes a serem
carregados
WEBPACK
node_modules
DUPLICAÇAO DE CODIGO
SplitChunksPlugin
Separa código que é da aplicação e o que é utilitário
Listando bibliotecas como “vendor” faz com que se crie um
arquivo individual que o browser consegue cachear o
conteúdo com mais facilidade.
Pra lidar com código
bloqueante
Javascript...
CODE SPLITTING
&
LAZY LOAD
O code splitting permite que você divida seu código em
pequenos bundles que podem ser carregados sob
demanda ou em paralelo.
Com isso você tem bundles menores e controle de
prioridade sobre seus recursos.
/home
/about
/contact
Pagina Inicial
() => import('./About')
() => import('./Contact)
ensure
Dynamic Import está em stage3 da proposal para o js
Plugin Babel (syntax-dynamic-import)
require.ensure([/* dependencies */], require => {
const Foo = require('foo');
}, error => {
// handle error
}, 'custom-bundle-name');
Web Developers Google - Critical Rendering Path
developers.google.com/web/fundamentals/performance/critical-re
ndering-path/
How browsers work internally - Tali Garsiel - Front-Trends 2012
vimeo.com/44182484
How Browsers Work: Behind the scenes of modern web browsers
html5rocks.com/en/tutorials/internals/howbrowserswork
OBRIGADA :)
speakerdeck.com/anabastos
anabastos.me
github.com/anabastos
@naluhh
@anapbastos

Mais conteúdo relacionado

Semelhante a Navegadores por de baixo dos panos - Ana Luiza Bastos

Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Introdução de web
Introdução de webIntrodução de web
Introdução de webSedu
 
Front-end: O que é necessário saber ?
Front-end: O que é necessário saber ?Front-end: O que é necessário saber ?
Front-end: O que é necessário saber ?Rafael Pazini
 
Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Performance - Acelere seu site! Na web tempo é mais que dinheiro.Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Performance - Acelere seu site! Na web tempo é mais que dinheiro.Gustavo Corrêa Alves
 
JS Experience 2017 - Otimizando o front end
JS Experience 2017 - Otimizando o front endJS Experience 2017 - Otimizando o front end
JS Experience 2017 - Otimizando o front endiMasters
 
Introdução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento webIntrodução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento webCarlos Eduardo Kadu
 
DOM, CSSOM e RenderThree - Introdução ao Browser Render Path
DOM, CSSOM e RenderThree - Introdução ao Browser Render PathDOM, CSSOM e RenderThree - Introdução ao Browser Render Path
DOM, CSSOM e RenderThree - Introdução ao Browser Render PathDiego Eis
 
Core Web Vitals - Técnicas de Performance Web pra Javascript
Core Web Vitals - Técnicas de Performance Web pra Javascript Core Web Vitals - Técnicas de Performance Web pra Javascript
Core Web Vitals - Técnicas de Performance Web pra Javascript CamiloMicheletto1
 
Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Sérgio Vilar
 
Otimização Front-end para WordPress
Otimização Front-end para WordPressOtimização Front-end para WordPress
Otimização Front-end para WordPressGuga Alves
 
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3 Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3 Cristofer Sousa
 
Tecnologia web aula 03
Tecnologia web  aula 03Tecnologia web  aula 03
Tecnologia web aula 03Manuel Ernesto
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojofabioginzel
 
Revisão HTML, CSS e BOOTSTRAP - Professor Franciosney
Revisão HTML, CSS e BOOTSTRAP - Professor FranciosneyRevisão HTML, CSS e BOOTSTRAP - Professor Franciosney
Revisão HTML, CSS e BOOTSTRAP - Professor Franciosneyfranciosney
 

Semelhante a Navegadores por de baixo dos panos - Ana Luiza Bastos (20)

Web Performance Client Side
Web Performance Client SideWeb Performance Client Side
Web Performance Client Side
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Introdução de web
Introdução de webIntrodução de web
Introdução de web
 
Front-end: O que é necessário saber ?
Front-end: O que é necessário saber ?Front-end: O que é necessário saber ?
Front-end: O que é necessário saber ?
 
Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Performance - Acelere seu site! Na web tempo é mais que dinheiro.Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Performance - Acelere seu site! Na web tempo é mais que dinheiro.
 
JS Experience 2017 - Otimizando o front end
JS Experience 2017 - Otimizando o front endJS Experience 2017 - Otimizando o front end
JS Experience 2017 - Otimizando o front end
 
Programação Web com HTML e CSS
Programação Web com HTML e CSSProgramação Web com HTML e CSS
Programação Web com HTML e CSS
 
Introdução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento webIntrodução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento web
 
DOM, CSSOM e RenderThree - Introdução ao Browser Render Path
DOM, CSSOM e RenderThree - Introdução ao Browser Render PathDOM, CSSOM e RenderThree - Introdução ao Browser Render Path
DOM, CSSOM e RenderThree - Introdução ao Browser Render Path
 
Fundamentos de arquitetura Web
Fundamentos de arquitetura WebFundamentos de arquitetura Web
Fundamentos de arquitetura Web
 
Core Web Vitals - Técnicas de Performance Web pra Javascript
Core Web Vitals - Técnicas de Performance Web pra Javascript Core Web Vitals - Técnicas de Performance Web pra Javascript
Core Web Vitals - Técnicas de Performance Web pra Javascript
 
Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)
 
Otimização Front-end para WordPress
Otimização Front-end para WordPressOtimização Front-end para WordPress
Otimização Front-end para WordPress
 
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3 Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
 
Html5
Html5Html5
Html5
 
Tecnologia web aula 03
Tecnologia web  aula 03Tecnologia web  aula 03
Tecnologia web aula 03
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 
Curso asp - basico
Curso   asp - basicoCurso   asp - basico
Curso asp - basico
 
Revisão HTML, CSS e BOOTSTRAP - Professor Franciosney
Revisão HTML, CSS e BOOTSTRAP - Professor FranciosneyRevisão HTML, CSS e BOOTSTRAP - Professor Franciosney
Revisão HTML, CSS e BOOTSTRAP - Professor Franciosney
 
Programação web e o front-end
Programação web e o front-endProgramação web e o front-end
Programação web e o front-end
 

Mais de iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesiMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesiMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesiMasters
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsiMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudiMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza LeiteiMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesiMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosiMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeiMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle MonteiroiMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujoriMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaiMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiiMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisiMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoiMasters
 

Mais de iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

Navegadores por de baixo dos panos - Ana Luiza Bastos