DEV Community

Vitor Freitas
Vitor Freitas

Posted on • Edited on

3 2

Debugando como um profissional

O que é "debugar"?

Debugar é a arte de achar a causa de um bug. Nem sempre debugar é algo trivial e pode tomar horas, dias ou até semanas para que você consiga resolver o bug.

O mindset correto

Debugar é uma atividade que requer que o programador pense de uma forma clara e não enviezada sobre um problema. É muito fácil culpar o outro quando um bug surge, e saber que independente de quem for a culpa a responsabilidade de corrigir este bug é da equipe requer tempo e, claro, o mindset correto.

Nada é impossível

É comum querermos pensar "mas isto é impossível!" ou "no meu código não acontece esse tipo de coisa." quando um bug ou um erro surge. Sinto lhe informar mas isto é tão possível que já aconteceu! Então ao invés de lamentar ou discordar que este bug acabou de acontecer, use o seu tempo para corrigi-lo! Fix the problem, not the blame.

Não entre em pânico

Somos pagos para resolver problemas. A partir do momento que somos contratados por alguém ou por alguma empresa, nossa função é resolver os problemas dessa pessoa, agregando valor para a sua marca ou produto. Não entrar em pânico é imprescindível, e ao debugar um código não será diferente. Dê um passo para trás e veja o contexto como um todo. Por que isso aconteceu? Dada as circunstâncias, isto acontecerá novamente? Lembre-se, computadores fazem o que o instruímos a fazer, e não o que queremos que ele faça.

Corrija o bug, e não os seus sintomas

Sintomas são comportamentos que existem por conta de um determinado bug, e é fácil pensarmos que estes sintomas são o bug. Corrigir sintomas significam que o bug ainda está lá, e sinto lhe informar, mas ele vai voltar! Busque a raiz do problema e não os sintomas que o cercam.

Técnicas para debugar como um profissional

Reproduza o bug

Reproduzir um bug é uma frase conhecida no nosso meio, ela significa que você foi capaz de alcançar o mesmo comportamento reportado pelo seu usuário ou QA (controle de qualidade). Esta etapa é super importante, pois se você não consegue reproduzir um bug, como saberá que o mesmo foi corrigido? Se possível, isole este comportamento por meio de testes unitários/integração ou em um ambiente controlado, principalmente em casos onde você precisa passar por vários passos até chegar no bug. Você ganhará tempo e consequentemente resolverá este problema mais rápido.

Tenha controle dos dados

Como um bom programador JavaScript, uma das técnicas que mais uso para debugar minhas aplicações é por meio do console.log. Essa função escreve no console do browser (ou terminal) o que receber como parâmetro. Ou seja, posso escrever um payload de um requisição, o estado de uma variável em determinado bloco ou até um simples "cheguei aqui!" para saber se uma função foi chamada, por exemplo. É muito mais fácil descobrir um erro quando você pode visualiza-lo com clareza. Use funções de print ao seu favor!

Diga em voz alta

O ato de explicar o erro para outra pessoa é esclarecedor. O simples fato de você expressar o que está acontecendo para um colega de equipe muitas vezes é o necessário para que a solução apareça. Comunique-se!

Refatore seus testes

Sempre que possível cheque a integridade dos seus testes. Testes não podem ser enviezados e devem funcionar com as mais diversas entradas! Refatore quando for conveniente.

Use um debugger!

Temos várias ferramentas para auxiliar o processo de debugging do seu código. Use-as! IDEs geralmente contam com debuggers, como por exemplo Netbeans, Visual Studio Code e as IDEs da JetBrains. Use aquela que você se sentir mais a vontade e que te ajude a resolver os seus problemas.

Posteriormente pretendo escrever um artigo ensinando a usar o debugger do VS Code para debugar aplicações front-end e Node.js. Fique de olho!

Conclusão

Estas são dicas valiosas e que uso no meu dia-a-dia. A maioria vieram de notas que fiz enquanto lia o capitulo 3 do livro O programador pragmático e ver que eu estava no caminho certo foi uma sensação muito boa 😆. Recomendo a leitura do livro, lá ele aborda vários outros tópicos além de debugging.

Dúvidas ou sugestões estou sempre a disposição!

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay