① 评“程序员怎么样才能保证自己的程序没有BUG”
复核代码的目的有:
* 检查代码是否规范,如命名规范,注释
* 保证一段代码至少有两人共同熟悉,可以由任一人来更改。
* 审察未文档化的细节设计,即由代码直接表达的设计,由代码人口述设计并对照代码
我认为程序员永远都不会有100%的自信。
即使程序已经发布,被用户接受很长时间,只有好评没有抱怨,依旧不能确认有没有错误。
只能假定错误是永恒的,它们一直在那里,只是不到条件爆发。
一个程序员能做的就是,排除所有肤浅的错误,加大隐藏错误出现的几率并找到它们,
采用一些容错性代码减小可能的错误,减少程序发布后爆发的机率。
测试的目的是为了发现错误,
没有100%覆盖的测试。就是说,总是有一些状态是测试不到的。
代码人员认为不可避免地存在错误,需要测试,测试人员认为测试覆盖度不可能100%,还是要代码小心。
这是一个头痛的问题,结果是没有完美的程序。
单元测试是白箱测试,可以根据代码实现将注意力放到最关键的部位。
但仍然不是100%覆盖的。
单元测试一般针对的是边界数据,不要求覆盖度,而更要求有效性。
其目的更主要的是保证代码更改不会破坏原有的正确性,是提供保障而不是查找故障。
保证没有错误的唯一方法是不写代码,减少错误的最好方法是少写代码。
简单的设计和实现是减少错误的最佳方法。简单的代码错误必定少。
画蛇添足式的功能则是最大的错误发源地。
② 我是it程序员,刚进公司让我调试bug但是总是调不好很是郁闷,我该怎么办是不是有很多人都有这样的困惑
一般代码不是很多,可以一步一步跟踪,这样在找Bug的过程也学习到人家撰写的编码的知识;如果很长又没耐心去看,你就根据报异常的信息去瞭解,哪裏有错了,打个断点,F5调到那个断点,如果能跑到那个断点,就说明前面没问题,如果没跑到那个断点,就说明前面有异常,要在重新调整。其实就是要会拆分找问题。
做IT,没熬得住寂寞,谨慎仔细,品质如何保证呢。
③ 程序员遇到解决不了的bug怎么办
但大部分程序员都有一个问题就是不太愿意测试自己的代码。他们草草的调式完成以后就认为工作结束,测试那是测试人员的工作。
1. 影响了程序员自己的声誉
2. 影响了产品的质量
3. 影响了客户的信任度
4. 这个时候再 DEBUG 难度增大了许多。
大的不说,就说多自己声誉的影响吧。如果你的程序总会有这样那样的 BUG ,你得到收益会减少,即使你写了很多代码。
程序员必须克服一些自身的致命缺点才能够从根本上解决这个问题。那么这个问题是什么?前面我们已经提到,程序员对自己的代码都非常宽容,认为那是正确的没有问题。实际上这种想法比较正常,程序是通过程序员思考和设计之后才写出来,程序员不会将自己认为不正确的东西写到代码里,而到这个时候都一直假设程序是正确的;但人非圣贤,怎么可能不犯错误来。实际上程序员在对待其他程序员时候的态度就很好,带着一种挑剔和学习的态度;但一旦对待自己的代码就很难这么做;这就是最致命的。程序员也必须对自己的代码带着挑剔和学习的态度;这个基础是假设自己的代码是错误的,然后需要做的是怎么样证明自己的代码是正确的。程序员自身可以在程序生成的每个阶段做这些工作:仔细的设计(这个时候画点时间是值得的,必须保证我们对自己的程序有清晰的轮廓后才能开始动手写)、编写代码时、单元测试(单元测试的重要性就不在赘婿了)、功能测试。
仔细的设计:这个的仔细是说在程序员编写代码之前,其必须对代码的整个结构以及逻辑结构有明确的清晰的了解,只有这个时候才可以去写代码。这里没有谈到文档,但我说到了一定要清晰的思路,但清晰的思路不是每个人都可以在脑袋中直接形成的,很多人都是普通人,没有办法在脑袋瓜中把所有问题都想清楚,那么就记下来,特别对于复杂的逻辑。
编写代码:对于没有把握的代码,例如:新设计的算法,最好保证其正确性。可以单独将这部分测试,这可以让代码模块化的同时又保证了代码的正确性。一句话:少量的代码保证质量还是比较简单的。
单元测试:单元测试的重要性不在赘叙了,现在也有许多工具可以帮助程序员并减少工作量。
功能测试:程序员保证自己代码质量的最后一关;为了做这样的工作我们可能必须写一些代码来测试,甚至是测试工作。使用大量的 CASE 来测试,以及错误的 CASE 。这里和测试人员的测试不同之处在于:仍然让程序员的注意力放在其自己的代码范围内,减小了排错的难度。
如果你通过了以上的步骤都找不出你程序中有任何问题的话,那么我想你的程序应该足够健壮了。其实还有一点必须说明的就是:代码 REVIEW 。
前面说道了程序员对待别人代码的态度是挑剔和学习的态度,所以让其他程序员来 REVIEW 你的代码也是检查程序有没有逻辑错误的很好的办法。团队中应该交叉 REVIEW 代码,这是实践的经验。
作为一个好的程序员必须有以上的习惯,以及对待自己代码象孩子一样,我们要爱惜我们的代码,同时也要让代码走正确的路。
④ 作为程序员,有没有让你感到既无语又崩溃的时刻
我作为程序员总是做什么事情都安排的规规矩矩。但是我的女朋友就不一样了,正好跟我相反。他做什么事情都毫无章法,特别的懒散。感到既无语又崩溃。
⑤ 程序员新人怎样在复杂代码中找 bug
首先,打印出关键变量,看是否符合预期;然后,debug不符合预期的代码段;最后,梳理流程是否正确。个人浅见。