Nova melhoria: aumento de performance para usuários logados (última tarefa antes das TabCoins) 🎉
Esta melhoria foi liderada por aprendendofelipe e desencadeia algumas outras melhorias importantes aqui no TabNews, desde melhorias em UX (User Experience), quanto melhorias técnicas. Elas começam simples mas vão se acumulando, olha só:
Melhoria de UX
Agora algumas informações do usuário que está logado são guardadas em localStorage
(como id
, username
e features
) e agora o sistema consegue deduzir instantaneamente se ele está logado ou não para mostrar o menu mais adequado, fora mostrar instantaneamente outros botões, como por exemplo o botão de edição de conteúdo.
Outro detalhe pequeno mas que constribui para uma navegação com menos distração, é o fato de que antes, no menu superior do TabNews, o link para a página de Status ficava na direita, e depois que o sistema decidia se o usuário estava logado ou não (o que poderia demorar), ele empurrava esse item para a esquerda para mostrar os outros menus (de logado ou não logado). Isso causava um "flicker" em toda navegação. Agora este link está alinhado a esquerda para evitar esse deslocamento.
Foi também refatorado o componente responsável pelas edições de conteúdo e agora ele fica pronto para utilização do usuário de uma forma mais rápida e estável.
E tudo isto nos leva para o tópico da melhoria técnica.
Melhoria técnica
Antes, quando um usuário estava deslogado ou logado, a única forma do TabNews saber disso era fazer uma requisição para o endpoint /api/v1/user. Se recebia um 200
, significava que estava logado, e se recebia um 403
, estava deslogado... ou seja, para todos os usuários deslogados estava sendo gerado um erro 403
. Isto estava criando uma request desnecessária, causava uma demora para mostrar os menus e botões, e criando um ruído desnecessário nos nossos logs:
Agora, apenas usuários logados fazem a requisição para revalidar o token de sessão e para a aplicação se certificar que eles ainda estão logados. Mas para não atrapalhar a experiência do usuário, essa requisição é feita em "background" e o sistema primeiro usa o que está em localStorage
, e como fallback a requisição.
Fora isso, essa remoção de uma request que com certeza irá retornar um erro 403
para usuários deslogados inclusive faz com que seja possível criar alertas de desvio padrão de erros utilizando números que façam sentido.
Execução
Para tentar ao máximo não interromper o acesso de quem já estava logado no TabNews, essa implementação foi feita em três fases ao longo destas últimas semanas:
- Fase 1: https://github.com/filipedeschamps/tabnews.com.br/pull/443
- Fase 2: https://github.com/filipedeschamps/tabnews.com.br/pull/440
- Fase 3: https://github.com/filipedeschamps/tabnews.com.br/pull/460
*Caso não consiga abrir os links acima, leia a observação no fim desse post.
Milestone e TabCoins
Esta melhoria leva a Milestone para 93% dos itens finalizados e a única tarefa que falta é sobre a implementação das TabCoins 🎉
Eu não sei mais o que falar sobre essa turma sem me tornar repetitivo, sério. Temos pessoas com o máximo carinho nas implementações no repositório, e pessoas com o máximo carinho criando conteúdos de valor concreto na plataforma. Toda essa experiência com vocês está simplesmente apaixonante ❤️
⚠️ O repositório Open Source do TabNews ainda está em Modo Privado. Caso queira receber um convite para participar, leia esta publicação.