Quando falamos de depuração, é importante entender o que poderia dar errado e em quais situações você
pode querer depurar seu código ou evitar erros, e a coisa mais óbvia que
pode dar errado é que seu aplicativo falha ou que você está recebendo um erro. mensagem
de erro. Em desenvolvimento,
essa é a caixa vermelha que sobrepõe seu aplicativo, que já vimos anteriormente neste curso, e essas mensagens de erro são,
obviamente, um sinal claro de que algo está errado com seu código.
Mais sutis que isso são erros lógicos. Em seus aplicativos, você certamente terá, em algum momento, um comportamento
que pode não fazer sentido para você ou em que algo simplesmente não funciona da maneira que deveria funcionar.
Você não está recebendo um erro, mas seu aplicativo está se comportando mal, está
funcionando
incorretamente e, normalmente, você tem alguns erros lógicos em algum lugar que estão causando isso.
E por último, mas não menos importante, você tem sua interface de usuário, seu
estilo, seu layout, a experiência do usuário que você deseja criar e talvez
esteja desativado, talvez você tenha algo que simplesmente não pareça ou sinta a aparência ou a aparência e isso também é algo que
pode dar errado e que você quer evitar. Agora exemplos típicos para mensagens de erro
ou causas de mensagens de erro são erros de sintaxe onde você simplesmente tem um erro de digitação no seu código
ou onde você esqueceu uma chave de fechamento, algo assim, mas também erros no
seu código, por exemplo, uma linha de código onde você usa um valor
que você nunca definiu, então você está tentando, por exemplo, calcular algo com um valor indefinido ou analisar
uma string que é realmente
indefinida, qualquer coisa assim, que normalmente também levaria a erros. E então você tem um tipo especial de erro e estes são
erros inevitáveis, como eu gosto de chamá-los.
Agora, isso não significa que esses erros não podem ser evitados, porque você não é bom
o suficiente
como desenvolvedor, mas sim erros que podem resultar de uma solicitação de rede e de os usuários do seu aplicativo não terem
uma conexão de rede. ou que você está escrevendo para o sistema de arquivos e, de alguma forma, esse acesso está bloqueado, por isso
não pode ter certeza de que isso nunca falhará quando os usuários usarem seu aplicativo porque você não pode controlar como eles estão usando seu aplicativo ou
em quais circunstâncias eles estão usando seu aplicativo e, para esses erros, você também pode encontrar estratégias nas quais não é
possível evitar o erro, mas onde é possível lidar com ele. Agora, para erros lógicos, um exemplo típico seria
que você tem algum comportamento de aplicativo indesejado ou inesperado e, é claro, deseja se livrar disso,
de ter algum comportamento inesperado ou não manipulado do usuário para que os usuários o usem de uma maneira
não pretendia que eles fossem usados, por isso,
ao testar seu aplicativo durante o desenvolvimento, você quer ser realmente criativo e
descobrir se os usuários poderiam entrar em locais onde eles podem prosseguir ou onde o aplicativo não está funcionando corretamente. uma
certa seqüência de etapas que leva a um erro, a um erro lógico, talvez alguma entrada
esteja ausente em algum momento e você não esteja verificando se essa entrada está configurada e, portanto, com
isso não definido, você pode causar outro problema ou entrar em outro
erro, algo assim.
Agora, por último, mas não menos, se falarmos sobre o estilo, o layout, obviamente, podemos ter um estilo
inesperado ou errado, por isso estamos testando o aplicativo e vemos que ele não
parece como deveria ou talvez tenhamos resultados inconsistentes dispositivos diferentes, talvez
o nosso app pareça bom no iOS, mas não no Android ou por último, mas não menos importante, talvez tenhamos um
layout que simplesmente não funciona ou não se encaixa em certos dispositivos ou orientações.
Talvez o nosso conteúdo não caiba na tela em dispositivos muito pequenos, essas
são todas as coisas que também queremos excluir. Agora é isso que você pode
depurar, como você depura? Quais ferramentas você obtém para depurar seus erros?
Agora a ferramenta mais óbvia que você está recebendo e ainda a ferramenta que muitas pessoas esquecem ou simplesmente não olham para todas são
as mensagens de erro, leia
seriamente as mensagens de erro que você está recebendo.
Eu tenho visto isso com tanta freqüência em meus cursos que os alunos recebem algum erro e simplesmente vão Oh Deus, eu recebo um erro,
captura de tela ou copio e colo na seção de Q & A e às vezes, erros podem ser muito difíceis de depurar ou
entender ou você precisa de alguma experiência para descobrir o que exatamente deu errado, mas para ser muito honesto, muitas
vezes as mensagens de erro são realmente claras sobre o que deu errado ou até mesmo contêm uma solução sobre como você
pode corrigir o erro.
E, por último, mas não menos importante, simplesmente pegar mensagens de erro e pesquisá-las também o leva muito longe, porque é
provável que você não seja o primeiro a conseguir.
Agora digamos que você não está recebendo uma mensagem de erro, mas seu aplicativo não está se comportando corretamente em
algum ponto ou você não tem certeza se algum valor está definido corretamente em alguma parte do seu código.
Uma maneira muito fácil de analisar seu código, de ter uma ideia dos valores com os quais você está
trabalhando no código é usar um bom log de console antigo. Agora, a depuração de log do console não tem a melhor reputação
e, na verdade, não é tão boa se você estiver depurando um problema muito complexo,
mas simplesmente para ter uma ideia do fluxo do seu código ou de alguns dos valores com os quais está trabalhando , é
ótimo.
Você pode simplesmente despejá-lo em seu código e, em seguida, descobrir qual valor você está usando em que ponto ou
como algo se comporta em uma determinada situação ou se algo está sendo executado em tudo e,
portanto, isso é definitivamente algo que você também deve fazer.
Agora, para problemas mais complexos ou se você realmente quiser analisar seu código passo a passo, usar o depurador e os
pontos de interrupção do Chrome é uma ótima ferramenta e é compatível com o React Native, tanto quando você
está usando expo ou quando está não usando expo. Lá você pode realmente mergulhar fundo no seu código e
ter uma ideia de como ele funciona e percorrê-lo passo a passo e verificar seu código enquanto ele é
executado.
Então, vamos dar uma olhada nessas coisas agora.