Como corrigir erros
Como corrigir erros
Uma vez que tenha encontrado onde estão os seus erros, você precisa corrigi-los e tem múltiplas opções para isso, tanto boas quanto más. Esta seção cobre algumas coisas que você deveria fazer para se livrar de erros.
- Primeiro, copie o seu programa
Realmente, é difícil se livrar de alguns erros. Na verdade, às vezes, no processo de erradicar um pequeno erro que está deixando você louco, você acaba destruindo todo o seu programa. Isso acontece muito, portanto, salvar o seu programa antes de começar a depurar é a melhor maneira de garantir que um erro não obtenha o melhor que você tem.
- Corrija um erro de cada vez
Se você tiver muitos erros, corrija um e experimente a sua correção antes de se mover para o próximo. Corrigir muitos erros ao mesmo tempo aumenta o risco de acrescentar ainda mais erros.
- Esteja atento a codificação vodu
Às vezes, você sabe que existe um erro, mas na verdade não quer saber porque. Digamos que você tenha uma variável chamada teste e por algum motivo, teste é sempre 1 a menos do que você pensa que deveria ser. Nesse ponto você pode fazer duas coisas. Pode sentar-se aí por um tempo e pensar porque teste é 1 a menos do que deveria ser, ou pode simplesmente agir, acrescentar 1 a teste antes de usá-lo e ir em frente. O último método é chamado de programação vodu. Quando você começa a pensar "Com que diabos? Por que teste é 2 ao invés de 3? Bem... eu só vou adicionar 1 agora e corrijo mais tarde", você está se engajando em programação vodu.
A programação vodu pode funcionar em um curto prazo, mas eventualmente, írá condená-lo. É como esconder a poeira debaixo do tapete. O problema volta à superfície - seja você encontrando outro erro que não consegue encontrar, ou o próximo infeliz destinado a olhar o seu código achará que ele é extremamente difícil de entender.
Não pratique a codificação vodu.
- Busca por erros semelhantes
De certa meneira, a habilidade de contar e colar código é a pior coisa que já aconteceu a programadores. Com frequência você escreverá algum php em uma função, depois cortará e colará em outra função. Se ap primeira função teve um problema, agora você criou um problema em duas funções. Não estou dizendo que você não deveria cortar e colar, mas tenha em mente que erros têm uma maneira de se multiplicar, portanto, se encontrar um erro, busque por erros semelhantes em outros lugares de seu código. Um erro que, tipicamente brota várias vezes em cada php é erro de ortografia em nomes de variáveis. Se você errar na ortografia de the_name como teh_name em um lugar, pode ser que tenha errado também em outro lugar.
- Se tudo mais falhar
Você está ai sentado, olhando para um erro, e simplesmente não pode imaginar o que esá acontecendo ou como corrigi-lo. Ou talvez, para começar, não possa nem mesmo encontrar o erro. A melhor coisa a fazer é sair de seu computador. Vá ler um livro e dar uma volta no quarteirão. Beba alguma coisa gostosa. Faça alguma coisa - qualquer coisa - mas não pense sobre o programa ou o problema. Essa técnica é chamada de incubação e funciona surpreendentemente bem. Depois que você tiver tido uma pequena pausa e relaxado um pouco, tente encontrar de novo o erro. Com frequência, abordará o problema de uma maneira nova, mais preveitosa. A incubação funciona por afastar você de uma preocupação mental disfuncional.
- Se ainda assim não funcionar
Peça ajuda. Às vezes, você fica bloqueado em seus próprios padrões de pensamento contorcido e precisa de alguém que não tenha pensado no problema para achar o furo na sua lógica. Em ambientes de codificação estruturada, periodicamente os programadores revêem o código uns dos outros. Rever código não apenas ajuda a passar a limpo erros, mas também resulta em código melhor. Não receie mostrar a outras pessoas os seus phps. Você se tornará um escritor de php melhor.
- Boas práticas de codificação
A chave da boa programação é escrever programas para pessoas, não para computadores. Se tiver em mente que mais alguém provavelmente lerá seu php, você escreverá código muito mais claro. Quanto mais claro ele for, menso probabilidade de você encontrar erros. A codificação esperta é bonita, mas o codificador esperto comete erros.
Também é útil escrever comentários antes de começar a escrever qualquer código. Fazer isso garante que você pensou sobre problema, ao invés de apenas se aprofundar nele. Uma vez que você tenha escrito os comentários, pode escrever o código sob eles.
Uma vez que tenha encontrado onde estão os seus erros, você precisa corrigi-los e tem múltiplas opções para isso, tanto boas quanto más. Esta seção cobre algumas coisas que você deveria fazer para se livrar de erros.
- Primeiro, copie o seu programa
Realmente, é difícil se livrar de alguns erros. Na verdade, às vezes, no processo de erradicar um pequeno erro que está deixando você louco, você acaba destruindo todo o seu programa. Isso acontece muito, portanto, salvar o seu programa antes de começar a depurar é a melhor maneira de garantir que um erro não obtenha o melhor que você tem.
- Corrija um erro de cada vez
Se você tiver muitos erros, corrija um e experimente a sua correção antes de se mover para o próximo. Corrigir muitos erros ao mesmo tempo aumenta o risco de acrescentar ainda mais erros.
- Esteja atento a codificação vodu
Às vezes, você sabe que existe um erro, mas na verdade não quer saber porque. Digamos que você tenha uma variável chamada teste e por algum motivo, teste é sempre 1 a menos do que você pensa que deveria ser. Nesse ponto você pode fazer duas coisas. Pode sentar-se aí por um tempo e pensar porque teste é 1 a menos do que deveria ser, ou pode simplesmente agir, acrescentar 1 a teste antes de usá-lo e ir em frente. O último método é chamado de programação vodu. Quando você começa a pensar "Com que diabos? Por que teste é 2 ao invés de 3? Bem... eu só vou adicionar 1 agora e corrijo mais tarde", você está se engajando em programação vodu.
A programação vodu pode funcionar em um curto prazo, mas eventualmente, írá condená-lo. É como esconder a poeira debaixo do tapete. O problema volta à superfície - seja você encontrando outro erro que não consegue encontrar, ou o próximo infeliz destinado a olhar o seu código achará que ele é extremamente difícil de entender.
Não pratique a codificação vodu.
- Busca por erros semelhantes
De certa meneira, a habilidade de contar e colar código é a pior coisa que já aconteceu a programadores. Com frequência você escreverá algum php em uma função, depois cortará e colará em outra função. Se ap primeira função teve um problema, agora você criou um problema em duas funções. Não estou dizendo que você não deveria cortar e colar, mas tenha em mente que erros têm uma maneira de se multiplicar, portanto, se encontrar um erro, busque por erros semelhantes em outros lugares de seu código. Um erro que, tipicamente brota várias vezes em cada php é erro de ortografia em nomes de variáveis. Se você errar na ortografia de the_name como teh_name em um lugar, pode ser que tenha errado também em outro lugar.
- Se tudo mais falhar
Você está ai sentado, olhando para um erro, e simplesmente não pode imaginar o que esá acontecendo ou como corrigi-lo. Ou talvez, para começar, não possa nem mesmo encontrar o erro. A melhor coisa a fazer é sair de seu computador. Vá ler um livro e dar uma volta no quarteirão. Beba alguma coisa gostosa. Faça alguma coisa - qualquer coisa - mas não pense sobre o programa ou o problema. Essa técnica é chamada de incubação e funciona surpreendentemente bem. Depois que você tiver tido uma pequena pausa e relaxado um pouco, tente encontrar de novo o erro. Com frequência, abordará o problema de uma maneira nova, mais preveitosa. A incubação funciona por afastar você de uma preocupação mental disfuncional.
- Se ainda assim não funcionar
Peça ajuda. Às vezes, você fica bloqueado em seus próprios padrões de pensamento contorcido e precisa de alguém que não tenha pensado no problema para achar o furo na sua lógica. Em ambientes de codificação estruturada, periodicamente os programadores revêem o código uns dos outros. Rever código não apenas ajuda a passar a limpo erros, mas também resulta em código melhor. Não receie mostrar a outras pessoas os seus phps. Você se tornará um escritor de php melhor.
- Boas práticas de codificação
A chave da boa programação é escrever programas para pessoas, não para computadores. Se tiver em mente que mais alguém provavelmente lerá seu php, você escreverá código muito mais claro. Quanto mais claro ele for, menso probabilidade de você encontrar erros. A codificação esperta é bonita, mas o codificador esperto comete erros.
Também é útil escrever comentários antes de começar a escrever qualquer código. Fazer isso garante que você pensou sobre problema, ao invés de apenas se aprofundar nele. Uma vez que você tenha escrito os comentários, pode escrever o código sob eles.
Bastante interessante. Bom, um tipo de erro que aconteceu comigo é o seguinte: Se você esquece de colocar um ";" na linha 32, por exemplo, o php irá em alguns casos dar um parce error, mas irá apontar para a linha 33. Um erro comum de muitos programadores pouco experientes é olhar somente a linha em que o depurador aponta e não o contexto e em alguns casos isso é a maior dificuldade em corrigir o erro.
Isso sem falar nos erros de lógica, tem um artigo muito bom que fala sobre eles aqui mesmo na phpbrasil.com, mas não tenho aqi o link. Erros são comuns e acontecem com todo mundo, é preciso só tomar cuidado pra não tentar achar chifres em cabeça de cavalo e para não tornar um simples erro em uma aniquilação inteira da página, sempre usar e abusar de backups e se você está trabalhando muito tempo em tentar corrigir um erro sem sucesso às vezes é bom sair e tomar uma água, depois quando você volta acaba achando e corrigindo o problema bem mais facilmente.
Obrigado
Marlon
Isso sem falar nos erros de lógica, tem um artigo muito bom que fala sobre eles aqui mesmo na phpbrasil.com, mas não tenho aqi o link. Erros são comuns e acontecem com todo mundo, é preciso só tomar cuidado pra não tentar achar chifres em cabeça de cavalo e para não tornar um simples erro em uma aniquilação inteira da página, sempre usar e abusar de backups e se você está trabalhando muito tempo em tentar corrigir um erro sem sucesso às vezes é bom sair e tomar uma água, depois quando você volta acaba achando e corrigindo o problema bem mais facilmente.
Obrigado
Marlon
15/05/2004 10:00pm
(~20 anos atrás)
Acho que uma das chaves é o tal do comentário. Hoje em dia não é possível um código sem identação. Só que cada um faz a sua maneira e até ai tudo bem.
O problema é que quando você está lendo um código, até mesmo feito por você, nem sempre é facil interpretar o que está escrito. As vezes é uma condição muito específica, que você ou alguém estava pensando ou tinha em mente na hora, mas que sem um contexto, é muito difícil de entender. As vezes também, temos muitas condições aninhadas, principalmente dentro de loops, e o número de variáveis, até mesmo de variáveis váriaveis é muito grande, ai sim, é bem difícil o entendimento do código.
Comumente, encontro códigos sem nenhum comentário e muito aninhados, e cheios de condições específicas.
Se você comentar, você será capaz de enteder seus códigos mais rápido, poupando tempo quando precisa reescrevê-los, poupando tempo para achar erros, e ainda torna ele mais legível e compreensível a qualquer um.
É simples e muito útil... comentem !
O problema é que quando você está lendo um código, até mesmo feito por você, nem sempre é facil interpretar o que está escrito. As vezes é uma condição muito específica, que você ou alguém estava pensando ou tinha em mente na hora, mas que sem um contexto, é muito difícil de entender. As vezes também, temos muitas condições aninhadas, principalmente dentro de loops, e o número de variáveis, até mesmo de variáveis váriaveis é muito grande, ai sim, é bem difícil o entendimento do código.
Comumente, encontro códigos sem nenhum comentário e muito aninhados, e cheios de condições específicas.
Se você comentar, você será capaz de enteder seus códigos mais rápido, poupando tempo quando precisa reescrevê-los, poupando tempo para achar erros, e ainda torna ele mais legível e compreensível a qualquer um.
É simples e muito útil... comentem !
07/05/2004 8:55am
(~20 anos atrás)
è muito bom ter isso documentado, principalmente para os novos programadores...
Muito bacana
Muito bacana
06/05/2004 5:03pm
(~20 anos atrás)
Sobre o primeiro conselho, eu acho melhor vc usar um sistema de controle de versão.
Sugiro o CVS (www.cvshome.org), gratis e super eficiente.
Assim voce terá todas as versões do seu codigo, desde a primeira, podendo retornar a alguma versao anterior que nao apresentava o erro.
Pense nisso como uma automação das copias de
$ ls
script.php
script-v1.php
script-v1-2.php
...
script-v5-9.php
Sugiro o CVS (www.cvshome.org), gratis e super eficiente.
Assim voce terá todas as versões do seu codigo, desde a primeira, podendo retornar a alguma versao anterior que nao apresentava o erro.
Pense nisso como uma automação das copias de
$ ls
script.php
script-v1.php
script-v1-2.php
...
script-v5-9.php
06/05/2004 8:57am
(~20 anos atrás)
Concordo plenamente com o Márcio Passos. Muito interessante ter documentado essas dicas.
06/05/2004 8:39am
(~20 anos atrás)
nada de muito novo, mas interessantes ter essas dicas escritas, documentadas.
a incubação com certeza é um dos mais eficazes.... ;)
a incubação com certeza é um dos mais eficazes.... ;)
05/05/2004 6:43am
(~20 anos atrás)
Muito bom este artigo. Acredito na técnica da incubação e a recomendo. Uma outra que também poderia funcionar em pequenos "phps" é simular o funcionamento do código manualmente, você mesmo fazendo os cálculos no papel e caneta para ver em que ponto os dados se distorcem.
04/05/2004 10:29am
(~20 anos atrás)
- Acho fundamental usar controle de versao. O CVS eh otimo e eh suportado por varias ferramentas de desenvolvimento. Recomendo o link http://cvsbook.red-bean.com/.
- Alem de corrigir um erro de cada vez, nao misture correcao de bug com adicao de feature. Eh tentador as vezes mas eh bom evitar.
- Nomes de variavel: nunca use uma variavel/funcao/etc com o nome de teste ou qq coisa sem significado assim, a nao ser que o escopo seja minusculo.
- Evite copiar e colar: ponha codigo util em funcoes/classes separadas.
Na verdade nao programo em php, mas o assunto do artigo eh generico, por isso resolvi comentar.
Recomendo tb esse artigo para o que nao fazer em programacao (em Java): http://mindprod.com/unmain.html