Quando se projeta uma aplicação qualquer, invariavelmente é necessário pensar em como corrigir erros que, inevitavelmente, aparecerão. Isso, claro, se o aplicativo for minimamente complexo; não é possível (ou pelo menos não é provável) que haja erros em uma aplicação de soma de dois números, por exemplo. Outro ponto importante a ser levado em conta é que, quanto mais complexo o desenvolvimento, mais complicado é de encontrar esses erros. Ou seja, quando o desenvolvedor enxerga que o resultado final não é o esperado, fica muito mais difícil de encontrar onde o erro se encontra. Erro esse que muitas vezes é minúsculo, porém capaz de alterar todo o funcionamento do aplicativo. Para encontrar e corrigir esses erros existe um conceito chamado de depuração de código.
Depuração
A depuração de código, ou debug, foi utilizada pela primeira vez (com esse nome) em 1979, no livro de Glenford Myers, Software Reliability: Principles and Practices. O termo deriva da palavra bug, que é um termo para definir erros genéricos em computação. Com isso, o ato de depurar, ou debugar (em um aportuguesamento bem ruim), o código é responsável por localizar e corrigir erros genéricos.
Por mais simples que seja o conceito, o ato de depurar um código não é tão simples assim. Em geral, isso depende muito da linguagem de programação e também da ferramenta responsável por essa depuração, o depurador. Depuradores são, basicamente, responsáveis por permitir ao programador monitorar a execução de um programa, além de outras tarefas pertinentes. No caso de linguagens de alto nível, a depuração é menos trabalhosa, porque a própria linguagem é capaz de tratar exceções. Ou seja, como em tudo que envolve aplicações computacionais, a depuração de código também é muito mais simples em código bem escrito.
É interessante notar que a depuração não é um processo exclusivamente de software, também é vista em hardware. Basicamente, o processo de encontrar erros em hardware é um tanto mais complexo, uma vez que envolve o uso de instrumentos como osciloscópios e multímetros. As variáveis monitoradas são, portanto, a tensão e a corrente que circulam por determinada parte do circuito em um determinado momento. Porém, isso acaba não sendo muito prático. Para evitar a construção de hardware com erros, foram criadas as linguagens de descrição de hardware, entre as quais as mais utilizadas são VHDL (VHSIC Hardware Description Language), VeriLog e SystemC. Essas linguagens permitem a descrição do hardware e seu comportamento, e com isso, cria-se a possibilidade de emulação do hardware. É possível observar as formas de onda de entrada e saída do circuito, para verificar se o mesmo está com o comportamento esperado. Esse tipo de atitude evita muitos erros na construção de placas de circuito impresso.
O processo de depuração não é muito trivial. No caso de computação paralela, por exemplo, é muito complicado de encontrar erros, e, como tal, as dicas para programadores em ambientes assim é que realizem a depuração de código localmente, para depois paralelizá-lo. Em qualquer depuração, o lema de dividir para conquistar é o padrão. Essa divisão é feita como uma forma de simplificar o problema. Um exemplo clássico é um programa que lê diversos registros e o problema está associado a apenas um deles. Com isso, lendo apenas uma dessas entradas, é possível ver se o erro é realmente esse ou é alguma outra coisa, realmente no código. Após o isolamento do problema, ele precisa ser identificado, e é aí que entram os depuradores.
O depurador nada mais é do que uma aplicação utilizada para testar outras aplicações. Em outras palavras, é um programa utilizado para encontrar erros em outros. Um dos pontos mais comuns a todos os depuradores é a capacidade de criar breakpoints, ou seja, pontos de parada. Com esses pontos, o código para sua execução temporariamente, permitindo que o programador observe o estado da aplicação naquele momento, como variáveis, saída de métodos, etc. A maioria dos depuradores também oferece funcionalidades mais elaboradas, como a execução de código passo a passo, que é muito útil na maioria dos casos em que não se tem a menor ideia de onde encontrar o erro.
Geralmente, todas os IDEs (Integrated Development Environment) possuem depuradores de código. Esses depuradores normalmente possuem recursos muito amplos, e são auxiliares dos bons desenvolvedores em todos os projetos de softwares que eles realizam. Acrescentar um bom depurador ao IDE acaba sendo uma obrigação das empresas, pois, em geral, os desenvolvedores não gostam de trabalhar com depuradores com recursos limitados, ou de tirar o código do IDE para testá-lo. Com isso, o que se observa em casos assim é programadores utilizando a interface de usuário para testar a aplicação e encontrar os erros – o que raramen ...
Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.