不管是淄博网站建设新手学习,还是成手程序员,写程序就不可能不遇到Bug。那么,自学遇到Bug之后, 环境配不通,程序调不出来,运行不正常,该怎么办呢?首先我要恭喜你,遇见问题,意味着你又有 积累经验的机会了,每解决一个问题,你的PHP经验值就应该上升几百点,问题遇到得越多,知识提 升得就越快。
但是总是解决不了Bug也是很恼人的,怎么办呢?笔者的建议是,当你遇到一个问题的时候,首 先要仔细观察错误的现象。是的,要仔细。有不少新人的手非常快,访问页面报了一大堆的错误,扫 了一眼之后就开始盯着代码一行一行地找。看清楚什么错误了吗?没有!还有出现Bug马上网上求救, 自己都没看一下,这都是典型的不_b自的学习方法。请记住,学习编程并不是一件很容易的事情,自 己首先要重视,要用心才可以。别人帮你解决的问题可不是你的提高,最少也要自己试着解决一会儿, 真的没有思路了,可就别浪费时间了,再花多少时间也解决不了,这个时候就该想想别的办法了。在 开发中,仔细观察出错信息,或者运行不正常的信息,’是你要做的第一件事。如果错误信息读懂了, 就要仔细思考问题会出在哪个环节:如果没读懂,又要怎么办呢?读了个半懂,有些眉目但是不太确 定,又要如何处理呢?
1.要仔细思考问题会出在哪些环节
一辆汽车从生产线上下来,车门关不上,哪儿出问题了,你怎么查?当然是顺着生产线一站一站 地查下来。程序也是一样的,也是一系列语句完成后产生的结果。当你读懂了一个问题之后,要好好 地思考这个问题可能会在哪些环节上出错。例如,客户端产生数据一按“提交”按钮一发送到服务 器一服务器接收到数据后保存到数据库,这儿个环节都有可能出错:有可能客户端根木就没产生数据, 有可能“提交”按钮按下去后根本就没发出去,或者发出去的不是你产生的东西,或者根本就没有连 接网络,或者发送出去后服务器没有接收到,或者接收到了但没保存到数据库等。学着去这样仔细地 分析程序的环节和这些环节可能会产生的问题,你的经验值自然会大幅度、快速地提升。这样做很累, 但是一件事情如果做下来一点都不累的话,这个东西还有价值吗?在网页A输入了一个人的名字,提 交到L.,首先存储到数据库,然后再读出来,发现乱码!怎么办?当然是分析环节:客户输入一HTTP 发送一B接收一存储到数据库一读出一展现到网页。每个环节都可能出问题,怎么才能知道是哪里出 的问题?继续往下读。
2.如何定位错误
写代码时常见的Bug其实就两大类:一类是语法错误,例如没写结束的分号,访问时页面中就会 提示哪里出错,打印出错误报告,只要认真读完错误报告,这样的问题很容易找到,也很好解决;另 一类是编写的逻辑错误,这是因为设计缺陷或是开发思路混乱造成的,要定位这样的错误会麻烦一些。 分析清楚有哪些环节之后,通常有3种方法找到错误位置:第一种是输出调试法,在多个可疑的位置 打印输出不同的字符串,通过观察输出的结果,并结合输出信息的位置周围的代码来确认错误位置; 第二种是注释调试法,先将所有代码注释掉,再从上到下一点点去掉注释,去一次运行一下观察运行 结果,如果有不正常的结果出现也就定位到了错误的位置;第三种是删除调试法,先将代码备份,然 后删掉一部分调试一部分,也就是去掉一部分的功能,做简化,然后调试剩下的功能。如果还查不出 来,恭喜你,你遇到的错误是值得认真对待的错误,是会影响你学习生涯的错误,就使用搜索引擎吧。
也可以在专业的BBS中详细列出问题,或加入一些QQ群求指导。但向别人提问是非常讲究技巧的。 曾经有人问我这样的问题:“请问如何才能学好PHP呢?”这个要求太泛泛了。还有人给我一段长长 的代码甚至把项目压缩包发过来,然后说有个错误您帮我查查?还有人问这样的问题:是否有人能帮 我完成一个完整的聊天程序?请帮我写一个登录模块……这样的要求有些过分了,有人帮你是你的运 气,没有人帮你是正常反应。向别人提问,首先应该确定你己经做了自己应该做的事,不要没有经过 认真思考就草率地向别人提问,这样自己是不会有太大进步的。