Aprendizados da semana (9-15)
Essa semana (9 - 15) não foi das melhores, mas chega de enrolação e bora ao que interessa.
- dependência fantasma
- principais threads do react native
Dependência fantasma
Eu acabei de instalar o React, por exemplo, e descobri que ele usa uma dependência X, a qual fica registrada na raiz da pasta com todas as dependências (node_modules). Funciona? Sim, você importa e usa ela em vários lugares diferentes.
Lança uma atualização do React em que ele deixa de usar a dependência X e começa a usar a Y por, por exemplo, questões de performance. Você atualiza o React e, de repente, seu sistema em produção sai do ar. Esse é o problema causado pela dependência fantasma.
Alguns gerenciadores forçam a apenas pacotes declarados no arquivo de manifesto poderem ser importados no projeto, como o pnpm. Pelo que pesquisei, é algo comum de se acontecer em sistemas legados ou em ambientes de testes rápidos ao copiar e colar códigos prontos.
Principais threads do react native
Conheci essa divisão na aula de Desenvolvimento Mobile 2, em que o framework React Native possui três threads principais.
Main thread: ela lida com o lado nativo e sua responsabilidade é tratar de requisições de renderização do elemento na tela e dos toques do usuário na tela.
JS thread: ela executa JS (jura?) e se responsabiliza por toda a regra de negócio, como validação de inputs, requisições API, gerenciamento de estados, etc. Além disso, define a estrutura e funcionalidades da UI, como animações, por exemplo.
Shadow queue: o nome queue, de fila, não é à toa. Devido ao JS e a main thread não se “falarem” diretamente, toda mudança (atualização de um estado para outro com useState, por exemplo) é jogada na fila, a qual processa em lotes e, ao terminar os cálculos, joga as atualizações na main thread, que, por sua vez, exibe o resultado na tela do usuário.
Também foi comentado sobre a maneira como o código é compilado (eu recordando do assunto da semana anterior :D) para que as tags produzam o mesmo efeito em diferentes sistemas operacionais nativos.
E é isso para essa semana (9 - 15)!