DEV Community

rodbv
rodbv

Posted on

1

As 9 (ou 10) regras para debugar qualquer problema no seu código

Tem um livro pouco conhecido chamado "Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems", que eu li no início da minha carreira e que teve impacto tão grande quanto Clean Code, o livro azul do DDD etc, e que eu uso muito mais no dia-a-dia, vou falar sobre ele aqui:

O autor é um engenheiro eletrônico e ele destilou 9 regras para debugar qualquer coisa. Aqui vão as regras:

  1. Entenda o sistema: antes de tudo, entenda o contexto onde está o código que você quer debugar. De onde vem a chamada? pra onde vai? quando foi mudado pela última vez? tava funcionando? o que mudou desde então? você entende o código/linguagem/framework? se não, o que fazer?

  2. Veja o erro acontecer: às vezes a gente já sai querendo consertar baseado em hipóteses sem ter de fato feito o erro acontecer. Mas aí caímos no erro de um falso positivo, achamos que consertamos o problema depois de mexer aqui e ali, mas será que não foi coincidência?

  3. Pare de pensar e olhe: antes de criar hipóteses mil, dá uma olhada com calma no código. Tem alguma coisa ali que pode indicar a origem do problema? onde você ou alguém mexeu por último? tem algum ponto do código que parece mais propenso a falhas?

  4. Divida e conquiste e

  5. Mude uma coisa de cada vez
    Esses são relacionados: mude as coisas aos poucos, e sempre que mudar algo e não gerar o resultado esperado, desfaça a mudança! tenha sempre só uma variável/hipótese sendo testada. Isso é fundamental.

  6. Anote o que você aprendeu. O que deu certo? o que deu errado? anote pois você ou alguém pode precisar disso no futuro. Escreva algo na issue, ou compartilhe no Slack, Wiki, ou nas suas anotações pessoais.

  7. Cheque a tomada: quem já deu suporte em provedor de net sempre pedia pro cliente primeiro checar os plugues. E na minha experiência uns 10 ou 20% dos problemas era isso. Cheque se o serviço está online, se o disco não está cheio, essas coisas "óbvias" que a gente acaba pulando

  8. Peça uma segunda opinião. Tá empacado? experimenta explicar o problema pra alguém. Ou pra sua xícara de café. Ou então dá uma passeada, volta e explique para você mesmo o que você está vendo acontecer (não o que você acha). "Metade da resposta está na boa pergunta".

  9. Se você não consertou, não está consertado. O erro parou de acontecer? não sai comemorando. OK, se for de madrugada e quiser voltar a dormir tudo bem, mas saiba que se você ou alguém não consertou, ele vai acontecer de novo. Não se iluda!

Ah, e pra quem é dev eu adiciono a regra zero: Leia e entenda a mensagem de erro!

As vezes a solução já tá ali! A gente fica tão estressado com a fonte vermelha dizendo "error" que já quer sair correndo pra mexer sem de fato entender o que tá escrito no erro..leia com calma!

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)

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More