Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Projetando Aplicações Front-End Modernas

Projetando Aplicações Front-End Modernas

Arquiteturas, práticas e técnicas recomendadas pelo mercado atualmente para criação de aplicações Front-End, principalmente assuntos relacionados à Baseline, Resumability, Islands, SSR, ISR, SPA, MPA entre outros conceitos modernos, visando facilitar a compreensão sobre como esses temas podem ser aplicados de maneira eficaz em projetos do dia a dia.

Avatar for Beto Muniz

Beto Muniz

November 18, 2023
Tweet

More Decks by Beto Muniz

Other Decks in Programming

Transcript

  1. Single-Page Application Carrega uma página e atualiza o conteúdo dinamicamente

    sem recarregar a página inteira. Recomendada para aplicações interativas e fluidas, como painéis de controle e aplicativos de email.
  2. Multi-Page Application A cada requisição, uma nova página é devolvida

    pelo servidor. Ideal para aplicações dinâmicas que precisam do conteúdo disponível no carregamento da mesma.
  3. Micro Front-Ends Divide o front-end em pequenos, independentes e gerenciáveis

    micro aplicativos front-end. Útil em equipes de onde diferentes módulos precisam ser desenvolvidos em paralelo.
  4. Progressive Web Apps Aplicações web que oferecem experiência semelhante a

    de uma aplicação nativo. Bom para soluções que desejam melhorar a retenção do usuário com suporte offline, notificações, etc.
  5. JAMStack Baseia-se em JavaScript, APIs e Markup pré-renderizado para entrega

    rápida de conteúdo. Indicado para applicações que visam alta performance e segurança. J A M
  6. Atomic Design Define a criação de componentes fundamentais e os

    combina para criar estruturas mais complexas Promove consistência, escalabilidade e produtividade, e é Indicado para criação de Design Systems.
  7. Responsive Design A interface se adapta ao layout do dispositivo,

    melhorando a usabilidade e busca de informações Ideal para alcançar maior público e ganhar pontos de SEO
  8. Headless Components Componentes que não possuem uma UI, mas fornecem

    funcionalidades específicas Ideal para criar bibliotecas de componentes. É uma proposta frameworkless.
  9. 🔗 redux-toolkit.js.org 🔗 xstate.js.org 🔗 jotai.org 🔗 mobx.js.org 🔗 recoiljs.org

    🔗 github.com/pmndrs/zustand 🔗 valtio.pmnd.rs 🔗 rematchjs.org
  10. 🔗 web.dev/csp Content Security Policies Header HTTP que auxilia na

    proteção contra ataques de code injection como XSS, Clickjacking, etc
  11. 🔗 owasp.org/www-project-top-ten OWASP Top 10 Relatório com os 10 principais

    riscos de segurança em aplicações web Ótimo ponto de partida para se conhecer os tipos de vulnerabilidades que uma aplicação front-end pode ter
  12. Mozilla Observatory 🔗 observatory.mozilla.org Ferramenta que avalia o nível de

    risco e vulnerabilidades de segurança de aplicações Possui linguagem humanizada e didática dos aspectos inseguros da uma aplicação
  13. JS Membranes Barreiras que controlam como diferentes partes do código

    interagem entre si No JavaScript é um padrão implementado através do objeto Proxy, ou bibliotecas como a es-membranes 🔗 github.com/privacycg/js-membranes
  14. Baseline Auxilia a divulgação e adoção de novas funcionalidades dos

    browsers Estar em conformidade com a Baseline ajuda evitar surpresas imprevistas nas suas aplicações. 🔗 web.dev/baseline
  15. WCAG Padrões técnicos desenvolvidos para tornar a web mais acessível

    para todos os usuários. Hoje na versão 2.2, a WCAG 3 está em desenvolvimento e promete ser mais abrangente e fácil de entender 🔗 w3.org/TR/WCAG22
  16. Transitions View API Especificação que permite criar transições visuais entre

    um documento e outro. "Simula" SPA num contexto MPA 🔗 mdn.io/transitions-view-api
  17. Subgrid Scoped Styles Aspect Ratio sv*, lv*, dv* gap Two-Value

    Display Nesting accent-color Container Queries Logical Properties :nth-child(Y of X) @starting-style
  18. Class Variance Authority 🔗 cva.style 🎨 CSS Houdini CSS in

    JS Zero Runtime CSS 🔗 designtokens.org Design Tokens
  19. WebGPU API Web API que dá acesso a GPU para

    acelerar processamentos complexos diretamente no navegador Recomendada para aplicações de IA/ML ou gráficos 3D na web 🔗 webgpufundamentals.org
  20. web-llm Permite integrar modelos de linguagem no navegador através da

    WebGPU sem necessidade de servidores Ideal para assistentes de IA com focam privacidade e redução de custos, aproveitando o processamento do cliente 🔗 github.com/mlc-ai/web-llm
  21. diffusers.js Biblioteca JS que permite executar modelos de difusão em

    GPU/ WebGPU direto do navegador 🔗 islamov.ai/diffusers.js
  22. v0 AI Generativa desenvolvida pela Vercel que cria código React

    compatível com Shadcn UI com base em prompts de texto Simplifica a prototipagem de Front-End 🔗 v0.dev
  23. Tensorflow.js Biblioteca JS otimizada para desenvolver e executar aprendizado de

    maquina diretamente pelo navegador 🔗 tensorflow.org/js
  24. Web Neural Network API Web API que permite aceleração de

    redes neurais em aplicações web, utilizando hardware local como GPUs e CPUs 🔗 webmachinelearning.github.io Permite experiências através de IA que usam o hardware do usuário para reduzir a latência de processos, privacidade e diminuir custos
  25. Open UI brings clarity to information about browser support for

    web platform features. By aligning with Baseline, there should be no surprises when testing your site open-ui.org
  26. Project Fugu an effort to close gaps in the web's

    capabilities enabling new classes of applications to run on the web Reaching parity with native developer.chrome.com/fugu-showcase