Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Aplicações server-side rendering (SSR)
Arquitetura de front ends
Aplicações server-side rendered
• Em cada uma das requisições, o servidor é o responsável por devolver a 
página completa ao usuário, pois ela já foi pré-processada; 
• Sistema de rotas de URLs direto no servidor.
Pontos de atenção
• Separação das responsabilidades pode ser mais difícil; 
• Dificuldade de componentização e reaproveitamento de códigos de 
interface; 
• Após o surgimento de frameworks de criação de componentes, construir 
interfaces sem o uso desse tipo de ferramenta tornou-se indispensável
Front-end + SSR
• Para evitar que tenhamos que recorrer a modelos antigos de criação de 
aplicações front-end, como PHP, ASP.NET MVC e JSP, foram criados outros 
frameworks que fazem o papel de renderizar o front-end no lado do 
servidor; 
• Aplicações citadas acima como "modelos antigos" possuem dificuldades 
técnicas (separação de conceitos, por exemplo) e organizacionais 
(dificuldade de contratação e retenção de talentos)
http://ASP.NET
FRONT-END + SSR
Front-end + SSR
• Next, Nuxt e Angular Universal (dentre outros) são frameworks que utilizam 
React, Vue e Angular respectivamente como base em suas construções; 
• Têm a proposta de possibilitar a criação de aplicações de forma 
componentizada, utilizando os mesmos conceitos fundamentais, mas com a 
funcionalidade de renderização de todo ou parte do seu código no servidor.
Front-end + SSR
• A abordagem SSR possibilitam que as aplicações possam ser indexadas pelos 
mecanismos de busca, favorecendo o Search Engine Optimization (SEO); 
• Na figura abaixo, podemos ver que quando fazemos uma requisição GET na 
URL de uma aplicação SPA, o conteúdo que temos é um elemento vazio: 
• Isso porque o conteúdo em aplicações SPA só é renderizado no cliente após 
a interpretação dos scripts referentes àquela página
Aplicações server-side rendered - Vantagens
• Performance e Time To Interactive (TTI) 
https://developers.google.com/web/tools/lighthouse/audits/time-to-interactive
https://developers.google.com/web/tools/lighthouse/audits/time-to-interactive
SSR + REACT
• Aplicação é pré-renderizadas no servidor, somente pela primeira vez; 
• Navegações subsequentes utilizam o “efeito SPA”; 
• Melhor desempenho em mecanismos de busca; 
• Requisições feitas nas URL retornam a página HTML com conteúdo 
completo pré-renderizado; 
• Possibilidade de usar todos os conceitos de componentização presentes no 
React; 
• Sistema de rotas baseado na estrutura de pastas.
SSR + REACT
SSR + REACT
Angular Universal
• Possibilidade de adicionar a renderização via servidor no Angular: 
• ng add @nguniversal/express-engine => adicionar recurso SSR; 
• npm run dev:ssr => usado para desenvolvimento no modo SSR; 
• npm run build:ssr => usado para build no modo SSR; 
DEMONSTRAÇÃO
Next.js: https://codesandbox.io/s/cold-water-9tb3k 
Nuxt.js: https://codesandbox.io/s/nuxtjs-example-g2wsu
https://codesandbox.io/s/cold-water-9tb3k
https://codesandbox.io/s/nuxtjs-example-g2wsu
Arquitetura de css
Arquitetura de front ends
Arquitetura de css
• CSS importa, e muito! 
• Um CSS mal feito prejudica toda a manutenção de um projeto web; 
• Refatorar CSS não é NADA fácil; 
• Já precisou de fazer alguma refatoração de CSS em projeto web?
Arquitetura de CSS
• CSS está ligado diretamente a performance: 
• Override de estilos é custoso para o browser; 
• Evitar o uso de !important diminui o número de re-render na fase de 
“painting”; 
• CSS está diretamente ligado à escala: 
• Manter a consistência de estilos entre as telas é de suma importância; 
• Editar estilos antigos não deve ser uma tarefa difícil; 
• Reutilizar estilos já criados é extremamente importante.
Arquitetura de CSS
• Colisão e nome de classes: 
• Ao dividir em múltiplos arquivos, vamos decorar todos os nomes para 
evitar de repeti-los em arquivos diferentes? 
• O nome das classes e ID dizem respeito ao que realmente fazem?
Arquitetura de CSS
• Algumas style-guides e metodologias tentam resolver tais problemas: 
• BEM: Block - Element - Modifier; 
• OOCSS: Object-Oriented CSS; 
• CSS Funcional: Tachyons e Tailwind;
https://tachyons.io
https://tailwindcss.com
Block - Element - Modifier (BEM)
• Block: 
• Exemplos: header, container, menu, checkbox, input; 
• Element: 
• Exemplos: ítem de menu, ítem de lista, título de cabeçalho; 
• Modifier: estado em que o elemento ou bloco se encontra 
• Exemplos: disabled, active, fixed, background cinza;
Block - Element - Modifier (BEM)
Block 
Element 
Modifier
Block - Element - Modifier (BEM)
Block - Element - Modifier (BEM)
Block
Block - Element - Modifier (BEM)
Element
Block - Element - Modifier (BEM)
Modifier
Block - Element - Modifier (BEM)
Block - Element - Modifier (BEM)
Block - Element - Modifier (BEM)
• Convenção já definida para nomenclatura de classes; 
• Visão clara de estilos para elementos filhos; 
• Visão clara de estados; 
• Nome de classes muito grandes; 
• http://getbem.com/naming/;
http://getbem.com/naming/
Object-oriented CSS (OOCSS)
• Separação entre CSS de estrutura e skin; 
• Structure properties: 
• Width | Height | Padding | Margins | Overflow; 
• Skin: 
• Color | Background | Font | Shadow.
Object-oriented CSS (OOCSS)
Object-oriented CSS (OOCSS)
Object-oriented CSS (OOCSS)
Object-oriented CSS (OOCSS)
• Separação entre container e conteúdo; 
• Ausência de classes “herdadas”.
Object-oriented CSS (OOCSS) - Antes
Object-oriented CSS (OOCSS) - Depois
CSS funcional
• Ideia de ter micro classes de CSS para compor um elemento; 
• Cada classe altera uma única propriedade do CSS; 
• Classes sempre tratam responsividade desde a concepção; 
• Exemplos: 
• Tachyons | Tailwind CSS | BassCSS
https://tachyons.io/
https://tailwindcss.com/
https://basscss.com/
CSS funcional - tachyons - propriedades de texto
CSS funcional - tachyons - propriedades de largura
CSS funcional - tachyons - espaçamentos
CSS variables
CSS funcional - tachyons - utilização no html
CSS funcional
• Responsividade: todas as classes possuem tratamento responsivo; 
• Reutilizável e modular: inúmeras classes prontas para serem usadas em 
qualquer tela; 
• Legibilidade: ao olhar o HTML, você sabe exatamente qual será o seu estilo; 
• Produtividade: escrever HTML é mais rápido, pois diminui a necessidade de 
criar classes para modificar propriedades simples;
Ferramentas de build
Arquitetura de front ends
Ferramentas de build
• As ferramentas de build foram criados para resolver problemas de automação do pipeline de 
desenvolvimento: 
• Transpilação de Typescript para Javascript ou de React (JSX) para JavaScript; 
• Otimização de código: remoção de quebras de linhas, espaçamentos, redução do nome de 
funções; 
• Quebra de arquivos de build muito grandes: um arquivo pode ser configurado para ter, no 
máximo, 100kb por exemplo; 
• Inserção automática de arquivos javascript/css como referência no HTML sob demanda; 
• Um arquivo de configuração é necessário para automatizar todas essas tarefas; 
• Possibilidade de customizar, a qualquer momento, as tarefas já automatizadas; 
• Frameworks mais novos vêm com algum bundler embutido, mas conhecendo o seu funcionamento 
podemos customizar e adaptar à nossa arquitetura.
Ferramentas de Build - Webpack
• Webpack é o bundler mais utilizado pela comunidade; 
• Utilizado por padrão no Angular, Vue e React; 
• Documentação um pouco extensa pela quantidade de recursos disponíveis; 
• Possível de ter suas funcionalidades nativas extendidas através dos "Loaders" 
e Plugins; 
• Inicializa um servidor de build e desenvolvimento local, o que possibilita o 
Hot-Reloading (carregamento automático ao salvar os arquivos) e outras 
funcionalidades;
Ferramentas de Build - Vite
• Ferramenta de build e desenvolvimento leve, com a proposta de ter um 
ambiente de desenvolvimento mais eficiente e rápido, de acordo comque as 
alterações locais vão sendo feitas; 
• Possui templates pré-configurados para inúmeros frameworks de mercado: 
https://github.com/vitejs/vite/tree/main/packages/create-vite
https://github.com/vitejs/vite/tree/main/packages/create-vite

Mais conteúdos dessa disciplina