Ao projetar a nova plataforma de vídeos ao vivo no SporTV Play durante as Olimpíadas de 2016, com foco em maior desempenho e resiliência, construímos uma nova interface web com React e outras técnicas modernas de desenvolvimento front-end.
Nesta palestra, será apresentada essa experiência e analisadas as principais técnicas adotadas, dificuldades e soluções encontradas no caminho, incluindo:
- gerenciamento de estado com MobX (e por que não Redux)
- arquitetura do CSS: estilos inline, CSS in JS ou CSS modules?
- estruturação de componentes: presentational components e container components
- organização e compartilhamento de componentes
- dicas para otimização da performance com React
O participante sairá da palestra com uma visão prática e ampla do trabalho de front-end em um dos projetos mais importantes da plataforma de vídeos da Globo.com.
43. CSS INLINE
PROBLEMAS
não permite reaproveitar estilos
não suporta pseudo classes (:hover, :last-child)
não suporta media queries
não permite aplicar estilo em cascata
ex: header img { border: "1px solid black" }
53. CONTAINER COMPONENT
recebe dados via API ou props
formata dados
repassa os dados para descendentes (presentational ou container)
não tem conhecimento do markup
59. BIBLIOTECA DE COMPONENTES DE VÍDEO
reaproveitar código
trocar conhecimento entre times
aproximar a experiência de uso dos
produtos de vídeo
60. PROBLEMAS
dependências dos componentes (ex: Radium)
forma de exportar componentes
transpilado ou não (ou ambos)
incluir dependências no bundle ou não
interface dos componentes
ownership (quem é responsável por corrigir um bug?)
67. facilitou a criação de componentes
maduro e evoluindo rapidamente
ecossistema crescente
68. gerenciamento de estado
MobX para aplicações menores
Redux para aplicações mais complexas
arquitetura do CSS em discussão
compartilhar componentes não é tão simples quanto parece