Hey! Tudo bem?
Sabemos que construir boas interfaces de usuário envolve muitos conhecimentos além do código, mas não dá pra negar que, depois do lançamento do React, há 10 anos, essa tarefa ficou, no mínimo, mais divertida. A biblioteca front-end para JavaScript trouxe mais possibilidades, sendo mais eficiente e flexível que outras opções, além de transformar a implementação de elementos interativos. Nesta edição, selecionamos alguns artigos para evoluir em sua utilização.
Você também vê que praticar por meio de desafios de código é bastante importante, uma reflexão sobre criação de linguagens de programação ao lidar com compiladores, uma comparação entre as 3 políticas de autorização mais comuns (RBAC vs ABAC vs REBAC), um pouco sobre clientes HTTP em Elixir e as otimizações do Phoenix LiveView até agora.
Boa leitura!
REACT
Escolhendo a estrutura do estado em React
Estruturar bem o estado pode fazer a diferença entre um componente que é agradável de modificar e depurar e um que é uma fonte constante de bugs. Nesse artigo você encontra dicas importantes a considerar ao estruturar o estado em React, com insights valiosos que podem evitar problemas comuns e promover um código mais limpo e eficiente, melhorando assim sua manutenibilidade e desempenho.
Pensando em React
React é um dos principais modos de construir aplicações web grandes e rápidas com JavaScript. Esse texto traz uma sugestão de como pensar em React, através de uma abordagem passo a passo para projetar e estruturar componentes, com foco na tomada de decisões sobre o estado e na hierarquia deles. Você vai entender como quebrar a interface de usuário (UI) em componentes, montar uma versão estática da UI e identificar a representação mínima do estado UI.
Carta de amor ao React
O impacto do React desde seu lançamento em 2013 é inegável. A introdução de um modelo reativo de componentes conscientes de HTML para construção de interfaces, juntamente com a marcação co-localizada diretamente no código do aplicativo, revolucionou a eficiência em um mundo onde as aplicações de página única estavam cada vez mais pesadas. Leia essa homenagem sincera e entenda o impacto do React tanto no front-end quanto no back-end, e como Phoenix se beneficiou das revelações trazidas pela biblioteca quase uma década atrás.
CAMPUSCODERS INDICAM
Porque praticar por meio de desafios de código é importante
Em qualquer nível de conhecimento, existem muitas razões para investir tempo em desafios de código. A prática, em especial, é a maneira mais efetiva de melhorar suas habilidades em programação. Esse guia explora alguns dos motivos porque praticar através de desafios de código é essencial, seus principais benefícios e como transformar isso numa ferramenta poderosa de aprendizado.
Sobre compiladores e criação de linguagens de programação
Por mais que existam sobreposições entre desenvolver compiladores e desenvolver linguagens de programação, é preciso habilidades completamente diferentes para essas duas tarefas. E, por mais que seja comum que normalmente criem uma linguagem simples para testar compiladores, ao fazer isso, as pessoas desenvolvedoras estão resolvendo dois problemas difíceis e diferentes de uma só vez, o que torna o processo muito mais complicado. Nesse artigo, você vai entender mais sobre os diferentes desafios que essas duas tarefas proporcionam, como elas se relacionam e o que esperar ao se aventurar nesses tópicos.
Políticas de autorização: RBAC vs ABAC vs REBAC
Autorização (que não deve ser confundida com autenticação) é um problema que toda pessoa desenvolvedora irá enfrentar em sua carreira, visto que é uma parte fundamental de toda aplicação e pode se tornar algo bastante complicado conforme sua aplicação se desenvolve. Por isso, é muito importante conhecer os tipos de modelos de autorização. Dentre os disponíveis, temos 3 bem comuns: o RBAC (controle de acesso baseado em função), o ABAC (controle de acesso baseado em atributo) e o ReBAC (controle de acesso baseado em relações) e esse artigo traz mais sobre eles.
Clientes HTTP em Elixir
O ecossistema Elixir possui diversos clientes HTTP e, nesse artigo, você vê uma análise detalhada das principais opções para realizar solicitações HTTP, incluindo HTTPoison, Mint, Tesla e Finch, destacando suas qualidades e em quais situações poderia ser mais interessante utilizá-los.
Otimizações do Phoenix LiveView
As integrações entre servidor e cliente com LiveView do framework Phoenix permitem otimizar latência e largura de banda das aplicações, o que, por sua vez, resulta numa experiência melhor, mais rápida e agradável. Aqui, você descobre como a arquitetura da LiveView permite que aplicativos reajam a eventos em tempo real, mas também como a latência pode afetar a experiência do usuário. O artigo também mostra estratégias e técnicas utilizadas por um time de desenvolvimento nos últimos 5 anos para lidar com a latência na renderização de LiveViews, incluindo o uso de renderização diferencial, técnicas de otimização e o emprego de estados intermediários.
Campuscoders que contribuíram com a curadoria da semana: André Benjamim, Ederson de Lima e Marco Fornaciari 💚