Aprenda dicas para depurar seu código e corrigir erros no MIT App Inventor
Estas são as atividades para esta lição:
O QUE É DEPURAÇÃO/DESBUGAR?
Depuração é o processo que os programadores usam para descobrir porque seu código não está funcionando e, em seguida, corrigi-lo para que funcione.
O termo depuração veio da almirante Grace Hopper, uma pioneira da computação. Ela estava trabalhando no computador Mark II na Universidade de Harvard na década de 1940 e uma mariposa ficou presa no computador e o impediu de funcionar.
Ao se livrar da mariposa, ela disse que eles estavam "depurando" o sistema. Atualmente, os programadores usam o termo para se referir a "corrigir erros em meu código".
DICAS DE PROGRAMAÇÃO
A depuração pode ser, muitas vezes, a parte mais frustrante e demorada do programação, por isso é muito importante reservar bastante tempo para ela!
E também para ser paciente!
PEQUENOS PEDAÇOS
Às vezes, os programadores ficam tentados a programar todo o aplicativo de uma só vez e depois testá-lo.
Não caia nessa tentação!!!
Se algo não funcionar corretamente, o que é provável, é difícil descobrir por onde começar a tentar corrigir o erro.
Divida o código do seu aplicativo em pequenas partes.
Faça uma coisa funcionar antes de começar outra.
Programe um pouco, teste um pouco, confirme se funciona, então programe um pouco mais, teste um pouco mais etc.
Por exemplo, se seu aplicativo tiver 5 botões que fazem coisas diferentes,
- Programe a ação para o primeiro botão
- Em seguida, teste para ter certeza de que está funcionando.
- Passe para o segundo botão
- Repita.
É melhor corrigir o código em um lugar do que voltar e corrigi-lo em cinco lugares se houver um erro em seu código.
CONTROLE DE VERSÃO
Digamos que você siga a regra dos "pequenos pedaços" e tenha uma parte do seu aplicativo construída e funcionando.
Você adiciona um novo código e, de repente, tudo para de funcionar.
OH NÃO!
Você tenta excluir o novo código, mas seu aplicativo ainda não está funcionando. Você não tem certeza do que deu errado e gostaria de ter um botão "desfazer".
Para evitar cenários como esse, você pode salvar versões do seu aplicativo à medida que as partes forem funcionando.
Dessa forma, se você cometer um erro e não souber como corrigi-lo, poderá voltar à última versão funcional que salvou.
Também é possível usar o controle de versão para experimentar novos recursos sem se preocupar com a quebra do aplicativo em funcionamento.
Há duas maneiras de salvar versões diferentes no App Inventor, usando "save as" (salvar como) e "checkpoint" (ponto de controle).
O "Checkpoint (Ponto de controle)" salvará uma cópia com o nome que você der a ela, mas você continuará trabalhando na versão original. A ideia é fazer o "checkpoint" da versão que funciona e continuar o desenvolvimento na versão principal do projeto.
A função "Save project as (Salvar projeto como)" criará uma cópia do código em que você está trabalhando e a salvará com um novo nome. Todas as edições que você fizer estarão na nova cópia.
COLLAPSE BLOCKS (RECOLHIMENTO DE BLOCOS)
O recolhimento de blocos (Collapsing Blocks) é uma forma de manter seu código organizado, já que o espaço de trabalho do código começa a ficar lotado de blocos.
Se você clicar com o botão direito do mouse em um bloco, verá uma opção para "collapse" (recolher).
Para expandir seus blocos novamente, clique com o botão direito do mouse sobre eles e selecione Expand Block (Expandir Bloco).
Os blocos recolhidos serão reduzidos a uma barra na tela.
Eles continuam funcionando da mesma forma que os blocos normais, mas ocupam menos espaço. Isso pode ser útil se você tiver blocos que não precisa mais editar e quiser limpar a tela
DESATIVAR BLOCOS
Você também pode desativar os blocos.
Eles permanecem na sua tela, mas não são executados no aplicativo.
Com os blocos desativados, você pode testar seu aplicativo sem determinados blocos de código. Você pode ativá-los mais tarde e eles serão executados.
Você também pode desativar os blocos que usou apenas para testes, como os Notifiers.
Há duas maneiras de desativar os blocos no App Inventor
O simples fato de arrastar blocos para fora de um bloco manipulador de eventos os desabilitará e impedirá que sejam executados. Como eles não fazem parte de nenhum evento, não há como serem executados. Você sempre poderá colocá-los de volta para usá-los.
Você também pode clicar com o botão direito do mouse em um bloco ou grupo de blocos e selecionar "Disable Block (Desativar Bloco)". Os blocos aparecerão em cinza para mostrar que não serão executados. Dessa forma, você pode desativar um conjunto inteiro de blocos.
Para ativar seus blocos novamente, basta clicar com o botão direito do mouse e escolher "Enable Block" (Ativar bloco).
COMENTÁRIOS
Os programadores geralmente deixam comentários em seu código para explicar o que ele faz.
Os comentários podem ser úteis quando outras pessoas estiverem analisando o seu código, como colegas de equipe, mentores(as) e juízes.
Os comentários também podem ajudar caso você retorne ao seu código mais tarde e tenha esquecido o que partes dele fazem.
Para adicionar um comentário, clique com o botão direito do mouse nos blocos e selecione "Add Comment" (Adicionar comentário).
Depois disso, um ponto de interrogação aparecerá no canto do bloco e você poderá adicionar texto. Você pode visualizar o comentário clicando no ponto de interrogação.
Dica de mentores(as)
Melhores práticas: Os comentários são a coisa mais útil na programação.
Já houve muitas ocasiões em que um programador programou algo e depois foi dormir e voltou na manhã seguinte sem ter ideia do que estava fazendo na noite anterior. Sempre escreva comentários!
It’s also a great way to check your knowledge, because if your coding blocks are easy to comment on then you must understand them really well! Another thing to be aware of is that <, >, =, ≤, ≥ are hard for students for the first time (and for programmers who are years into their careers). When we set a math statement to < when it should be ≤ this is called an “off by one” error and this is a problem that happens to developers with 20 years of experience 😛 It is a very popular problem so be on the lookout for that.
O melhor tipo de depuração é a depuração com patos de borracha! É quando você está realmente se sentindo sem saída em seu código e ele não faz sentido. Você quer tirar um tempo para conversar com outra pessoa para ver se ela consegue identificar o problema, mas, infelizmente, não há ninguém por perto! Então, você tem um pato de borracha de confiança na sua mesa e explica o problema em voz alta para o seu amigo pato. Você precisa fazer isso em termos muito simples para que ele entenda e, depois disso, você mesmo encontrará o problema! Todos os meus colegas de trabalho têm patos de borracha em suas mesas e fazem isso com frequência!
Perguntas orientadoras para fazer a estudantes: Quanto tempo você acha que programadores experientes levam para depurar bugs? Seria de se esperar que eles fossem muito rápidos nisso, mas todos os grandes sites têm páginas dedicadas a ver por quanto tempo os bugs existem(Facebook, por exemplo) e também mostram se alguma de suas páginas está fora do ar/quebrada e se eles estão fazendo a depuração no momento(exemplo do Facebook).
Como você encontra bugs? (muitos e muitos testes!) Quantos testes você acha que deve fazer? Quanto teste você deve pedir para outras pessoas fazerem?
Como você sabe quando encontrou um bug? Às vezes, você pode passar uma eternidade clicando em uma imagem e perceber que o botão em que deveria estar clicando está embaixo da imagem. Isso é um bug? É uma escolha de design que o fabricante do aplicativo fez e ele não acha que seja um bug, mas você pode achar que é.
As dicas são fornecidas com o apoio do AmeriCorps.
DICAS DE DEPURAÇÃO
NOTIFICADORES E LABELS
O Notifier (Notificação/Notificador) pode ajudá-la a descobrir por que seu código está quebrado.
Para colocar um Notifier no seu aplicativo no App Inventor, arraste-o da paleta da interface do usuário.
A maneira mais fácil de usar o Notifier é adicionar blocos ShowAlert (Mostrar alerta) com informações para que você possa ver que determinados blocos foram executados (ou não).
Além das mensagens, você pode exibir informações como o valor de uma variável ou a posição de um ImageSprite.
Você também pode adicionar Labels (Rótulos/Identificadores) para exibir informações atuais em seu aplicativo.
Por exemplo, você pode querer saber o valor de uma variável à medida que determinados eventos acontecem enquanto o aplicativo está em execução.
Você pode definir o Label.Text para o que quiser saber e ele será exibido no seu aplicativo.
Depois de depurar o erro, você pode tornar o rótulo/identificador invisível ou excluí-lo completamente do aplicativo.
DO IT (FAÇA)
O componente Do it (Faça) é outra ótima ferramenta para depuração.
Enquanto estiver testando seu aplicativo ao vivo, seja com um telefone e o aplicativo AI Companion ou com o emulador, você terá acesso a um novo comando, "Do It".
O comando fica acinzentado até que você se conecte a um telefone ou ao emulador por meio do menu Connect (Conectar).
O Do it permite executar um bloco sem precisar interagir com o próprio aplicativo, para que você possa ver o valor atual de uma variável ou elemento.
Basta arrastar o bloco de variável "get global" e clicar com o botão direito do mouse. Selecione "Do It" no menu suspenso e o bloco de código será executado.
Uma caixa amarela Do It aparecerá acima da caixa com o resultado. Isso também pode funcionar para qualquer propriedade de componente!
Você também pode usar o Do It para alterar algo em seu aplicativo. Por exemplo, talvez você queira alterar um item em uma lista. Arraste o bloco para fazer isso e selecione Do It. Você não verá o resultado, mas a lista será atualizada no aplicativo.
Você também pode executar um bloco de código existente em seu aplicativo.
Por exemplo, aqui os elementos do ListView serão atualizados usando o Do It. Isso será refletido no aplicativo. O ListView exibirá os novos elementos definidos com o comando Do It.
USAR DADOS DE TESTE
Se você tiver muitas informações para usar em seu aplicativo, pode ser útil usar dados de teste. Os dados de teste são um conjunto de dados mais simples e menor que você pode usar para garantir que seu aplicativo esteja funcionando corretamente.
Digamos que você esteja criando um aplicativo que exibe restaurantes próximos. Você está usando o Google Tabelas para armazenar as informações do restaurante.
Você pode começar com apenas um ou dois restaurantes de teste e testar seu aplicativo para ter certeza de que ele funciona.
Quando estiver testado e funcionando, você poderá adicionar o conjunto completo de dados do restaurante à sua planilha do Google.
ALTERAR PROPRIEDADES
Se estiver testando o aplicativo em tempo real, você poderá alterar o valor de uma propriedade no Designer enquanto executa o aplicativo e ver seus efeitos.
Às vezes, isso pode ajudar a descobrir um problema.
Por exemplo, você pode estar acessando programação um jogo. A posição de um sprite não parece correta no seu telefone quando ele está em execução.
Durante o teste ao vivo, você pode
- Ir para o Designer
- alterar os valores X e Y do Sprite
- A posição do sprite na tela do aplicativo em execução será alterada.
Use-o para testar e entender as coordenadas na tela.
ATIVIDADE 1: CONSERTE O BUG
Correção de erros no aplicativo de Temporizador
- Carregue o aplicativo no App Inventor.
- Conecte-se ao emulador ou dispositivo para testar o aplicativo.
- Try pressing Start without typing anything into the textbox. What happens?
- Tente inserir 0 ou um número negativo para o número de segundos. O que acontece?
- Corrija os erros usando blocos condicionais!
ATIVIDADE 2: ADICIONE UM COMENTÁRIO
Adicione um comentário ao seu projeto no App Inventor
Adicione pelo menos um comentário ao seu aplicativo explicando o que um grupo de blocos faz. Escolha um grupo de blocos que considere mais difícil de entender, pois esses blocos provavelmente seriam os mais difíceis de serem entendidos por outra pessoa, como um membro da equipe.
REFLEXÃO
Essas dicas podem ajudá-la quando você começar a programar o aplicativo para o Technovation.
Mas lembre-se...
REVISÃO DOS PRINCIPAIS TERMOS
- Depuração - o processo que os programadores usam para descobrir porque seu código não está funcionando e corrigi-lo
- Controle de versão - salvar versões de trabalho de seu aplicativo à medida que você avança
- Dados de teste - um conjunto mais simples de dados que você pode usar para garantir que seu aplicativo esteja funcionando corretamente
- Comentários -texto que é incluído no código para explicar o que ele faz
RECURSOS ADICIONAIS
Aqui estão mais alguns recursos de depuração do App Inventor.