Top 5 dicas para resolver problemas de lentidão em apps @nodejs (ou mesmo qualquer app) 🔥🧵 /1
1 - Entenda o motivo da lentidão e timeouts
Essa é a fase de investigação, procure a causa da lentidão e o motivo de sua aplicação não estar entregando os requests em tempo (timeout). /2
Isso pode ser analisado usando ferramentas de Application Performance Monitoring, os APMs, ou até mesmo localmente, com pacotes para testes de carga como o autocannon em Node.js, o wrk da Apache por aí vai /3
Com isso, você pode tirar uma "foto", ou no nome técnico, um snapshot e jogar em ferramentas gratuitas como o #Google Trace e iniciar sua investigação.
Mas a forma mais simples, é usar o pacote npm #ClinicJS que já nos trás um grande set de ferramentas para Node.js /4
2 - Caching
Se você evitar chamadas replicadas, ou seja, se você consegue cachear os dados, por menor tempo que seja suas queries de banco de dados ou respostas do servidor, boa parte dos problemas de lentidão e indisponibilidade podem ser resolvidos na hora /5
Comece testando o pacote NodeCache que faz caching em memória e depois faça um experimento usando o Redis, que é o melhor na minha opinião /6
3 - Faça um benchmarking
O #benchmarking é fundamental neste trabalho de otimização
Você vai lá, guarda os números que sua aplicação estava antes de você tentar otimizar e depois da otimização você compara estes números com o novo resultado /7
Isso não só é bom para você saber o quanto foi melhorado, mas também pode apresentar para o seu time a progressão de melhoria da aplicação /8
4 - Crie mais cópias de aplicação
Criar cópias de instâncias pode aliviar o tráfego para aplicações que usam muito processamento em memória /9
Por isso, a lentidão tende a reduzir.
Mas MUITO cuidado, aumentar cópias de aplicação sem aumentar a capacidade do banco de dados, pode não necessariamente melhorar a eficácia das suas operações /10
5 - Refatore queries de banco de dados
E o mais importante, revise o que seu framework ou sua lib de banco de dados estão fazendo.
Projetos em produção a muitos anos, os famosos legados, tendem a ter débitos técnicos que, em grande maioria, estão relacionados /11
em como sua aplicação se comunica com o banco de dados ou conexões externas
Eaaaai, o que achou das dicas? Tem mais? 🤩 /12
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Como resolvi um bug no @nodejs que afeta o @Facebook Jest, @yarnpkg e milhares de outros pacotes 🔥🤩
Bora para o 🧵 /1
Para quem não sabe, há um tempo atrás consegui resolver um bug no Node.js que impedia que sub processos se comunicassem com o processo principal quando usássemos #ECMAScript modules /2
Fiz até um vídeo no canal mostrando todo o passo a passo, vou deixar o link no final do post para você assistir depois!
Minha primeira contribuição foi realizada na versão 17 do Node.js, só que até então, o problema não havia sido corrigido na versão corrente /3
Como dobrei a capacidade de resposta de um endpoint adicionando cache de apenas 100 milisegundos 🤯🧵
/1
Até criei um repositório completão para você testar essa prova de conceito, comparando o antes e o depois das alterações. /2
Eu já trabalhei bastante otimizações e caching de informações que são "quase" realtime, em desenvolvimento de uma grande plataforma de Application Performance Monitoring (APM) /3
Top 5 dicas que eu gostaria de ter ouvido quando iniciei em programação 🔥🤩
Segue o 🧵 /1
1 - Você não precisa ser 100% produtivo(a) todos os dias
Isso serve para qualquer área da vida. Não adianta tentar ser produtivo(a) 12 horas por dia todos os dias, seu corpo e principalmente sua mente precisam de descanso. /2
Tem vezes que o dia parece não render bem, mas é normal, isso acontece com todo mundo (e principalmente comigo, até hoje)
A chave é não parar e ir com calma, a consistência é chave no aprendizado /3
Top 5 experimentos em JavaScript para elevar seu nível técnico e ainda se divertir fazendo 🔥🤩
Segue o fio 🧵 /1
Uma das coisas mais divertidas em programação, é interagir com o mundo real e hoje existem dezenas de ferramentas prontas para você fazer isso com pouco esforço, como Tensor Flow, OpenCV e mais /2
1 - Detecção facial e adição de filtros no vídeo
Sabe aqueles filtros do Instagram ou Snapchat?
Você pode criar seu próprio filtro em vídeo, usando bibliotecas como o ffmpeg e identificar a área do rosto para colher as coordenadas sobre onde deve inserir o filtro /3
Entender como causar problemas do tipo vazamento de memória, travamento do event loop ou usar toda a memória reservada no sistema é também algo importante a se saber. /2
Isso porque esse tipo de problema pode e vai acontecer com você em algum momento, em produção.
Então você sabendo simular o problema, vai te ajudar a prevenir que ele não aconteça /3