Debugging: as regras indispensáveis para resolver até os problemas mais difíceis de encontrar (2004)
(dwheeler.com)-
Resenha de David A. Wheeler
- David J. Agans, autor de "Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems", é considerado um livro indispensável para desenvolvedores de software e hardware.
- O livro explica princípios básicos para encontrar e corrigir bugs, em vez de focar em tecnologias específicas, sendo especialmente útil para desenvolvedores iniciantes e de nível intermediário.
- A obra é estruturada em torno de "nove regras" e traz explicações sobre cada uma delas e como aplicá-las.
-
As nove regras
- Entenda o sistema: é importante ler o manual, entender os fundamentos e usar bem as ferramentas.
- Faça a falha acontecer: é importante reproduzir a falha novamente e descobrir a causa de bugs intermitentes.
- Pare de pensar e observe: colete os dados primeiro e não dependa de suposições.
- Dividir para conquistar: resolva o problema restringindo seu escopo e use padrões de teste fáceis de identificar.
- Mude uma coisa de cada vez: isole os elementos centrais e altere os testes um por um.
- Mantenha um registro de auditoria: registre o que foi feito e os resultados, entendendo que todos os detalhes podem ser importantes.
- Verifique a tomada: desconfie do que você assumiu e teste as ferramentas.
- Obtenha uma nova perspectiva: é importante conseguir novos insights e ouvir a voz da experiência.
- Se não foi corrigido, então não foi consertado: confirme se o problema foi realmente resolvido e corrija a causa.
-
Pontos fortes e fracos do livro
- O livro se concentra nos princípios básicos da depuração, o que o diferencia de outros livros técnicos.
- Inclui conselhos práticos sobre como lidar com problemas intermitentes.
- O apêndice do livro traz links para sites relacionados e para baixar pôsteres.
- Como ponto negativo, não há uma lista que reúna todas as regras e sub-regras em uma única página, e faltam conselhos concretos sobre tecnologias específicas.
-
Conclusão
- Este livro é útil para aprender ou relembrar os princípios básicos da depuração e ajuda tanto iniciantes quanto especialistas.
- David A. Wheeler recomenda fortemente este livro e enfatiza a importância dos princípios fundamentais.
1 comentários
Comentários do Hacker News
A tentação de consertar código com bug é grande, mas é mais fácil quebrar um código que funciona do que corrigir um código quebrado. Como no exemplo das luzes de Natal, começar com um exemplo mínimo que funcione para encontrar o problema é eficaz
Ao resolver problemas, o importante é não entrar em pânico. É preciso pensar com clareza, e um bom gestor ajuda dando suporte para que você possa se concentrar na resolução do problema
git bisecté útil para encontrar o commit que causou o problema entre vários commits. Especialmente em codebases grandes, ele permite localizar o problema rapidamenteEntender o sistema é importante, mas ler todos os manuais é irrealista. É preciso ter uma abordagem prática
É importante editar o arquivo certo na máquina certa
Livros recomendados para desenvolver a mentalidade de resolução de problemas:
Regras adicionais:
O bug deve ser adicionado ao CI como teste para evitar regressões. É preciso verificar se o CI falha antes da correção e passa depois dela
Mesmo depois do debugging, o trabalho não acabou. Para cada bug, é preciso fazer três perguntas:
É importante reproduzir o problema com a configuração mínima possível. Na maioria dos casos, isso permite encontrar o bug. Dividir o código ao meio para descobrir exatamente qual parte está errada é uma abordagem eficaz