bug是什么意思(Bug难道就仅仅只是Bug?)

懵懂先生 网文资讯bug是什么意思(Bug难道就仅仅只是Bug?)已关闭评论124阅读模式

文章源自略懂百科-http://wswcn.cn/25026.html

扯淡文章源自略懂百科-http://wswcn.cn/25026.html

随着工作时间越来越长,对于代码的理解也越来越多!关注重点也渐渐地从代码本身转移到了代码结构性、解决问题方法性等方面。下面就来说一说,在遇到代码BUG,我们常用的一些方法!文章源自略懂百科-http://wswcn.cn/25026.html

二分定位法文章源自略懂百科-http://wswcn.cn/25026.html

通常来说,无论BUG因此多深,通过二分定位法基本可以确定问题所在!那么什么是二分定位法?就是在程序关键点(可能的出错点)进行分割,看看还会不会出问题,类似二分查找的方法,逐步缩小问题范围。文章源自略懂百科-http://wswcn.cn/25026.html

二分定位法适用于绝大所数问题环境。对二分定位法作进一步扩展延伸,就会得出我们常用一些BUG解决方法:文章源自略懂百科-http://wswcn.cn/25026.html

注释大法:将代码一点点注释,来缩小范围Printf大法:在合适的代码位置对特定的变量等进行输出日志大法:在代码合适位置记录相关变量等关键数据文章源自略懂百科-http://wswcn.cn/25026.html

或许你还有其他名称的方法,但是基本都属于二分定位法的范畴!文章源自略懂百科-http://wswcn.cn/25026.html

IDE调试法文章源自略懂百科-http://wswcn.cn/25026.html

此法在程序开发阶段是绝对的利器!通过加断点、单步调试等可以快速的发现问题所在。突然想到了宇宙第一IDE:Visual Studio。但是,该方法有个比较大的限制:对于非逻辑性错误(比如内存泄露)来说,IDE调试法就有些乏力了。因为单纯的调试,可能BUG并不会出现。而且一旦出现该种问题,可能会直接导致IDE调试不可用。文章源自略懂百科-http://wswcn.cn/25026.html

其实,IDE调试,不仅仅是找BUG解决问题,对于分析代码逻辑来说无二选择。对于某些设计逻辑的实现,是否符合当初的设计。仅仅通过最终结果不能证明正确,还是需要通过IDE来验证!殊不知,在破解、逆向领域,调试绝对的NB,谁会有心情闷头看那一堆汇编代码,直接上调试器分析多好。文章源自略懂百科-http://wswcn.cn/25026.html

小黄鸭调试法(Rubber duck debugging)文章源自略懂百科-http://wswcn.cn/25026.html

又称橡皮鸭调试法,黄鸭除虫法。就是通过向不懂程序的人(只要是不了解要解释的代码的任何一个人都可以,比将你写的代码解释给你的同事)详细解释代码,从中发现问题或者获取灵感!此概念是参照于一个来自《程序员修炼之道》书中的一个故事。传说中程序大师随身携带一只小黄鸭,在调试代码的时候会在桌上放上这只小黄鸭,然后详细地向鸭子解释每行代码。文章源自略懂百科-http://wswcn.cn/25026.html

许多程序员都有过向别人(甚至可能向完全不会编程的人)提问及解释编程问题,就在解释的过程中击中了问题的解决方案。一边阐述代码的意图一边观察它实际上的意图并做调试,这两者之间的任何不协调会变得很明显,并且更容易发现自己的错误。如果没有玩具小鸭子也可以考虑向其它东西倾诉,比如桌上的花花草草,键盘鼠标。文章源自略懂百科-http://wswcn.cn/25026.html

类似的,有一种现象叫做ConeofAnswers,这是一个常见的现象。你的朋友跑来问你一个问题,但是当他自己把问题说完,或者说到一半的时候就想出了答案走了,留下一脸茫然的你。是的,这个时候你就起到了那只小黄鸭的作用。文章源自略懂百科-http://wswcn.cn/25026.html

相似的概念还有不少,列如自白调试、纸板程序员或程序员的假人、想出脑外等等。总的来说,在你试图表述自己的想法的过程中,自然地在促使自己去整理思路,重新考虑问题。文章源自略懂百科-http://wswcn.cn/25026.html

这种方法流传开后,很多程序员效仿,开始拿其他玩具,比如手办、喜欢二次元的、还会拿初音或者是其他公仔呀。文章源自略懂百科-http://wswcn.cn/25026.html

重读法文章源自略懂百科-http://wswcn.cn/25026.html

这种方法比较简单直接,就是通过一遍遍地阅读代码来发现问题。文章源自略懂百科-http://wswcn.cn/25026.html

重构法文章源自略懂百科-http://wswcn.cn/25026.html

终极必杀器。如果最终无论如何也不能找到BUG的问题所在,那就直接重构吧!重构有个问题需要注意,就是重构时不要再参看之前的代码!重构必须要考虑结构性的设计问题!文章源自略懂百科-http://wswcn.cn/25026.html

当然,对于简单的代码(对整体代码结构影响不大),直接重写会更迅速!文章源自略懂百科-http://wswcn.cn/25026.html

总结文章源自略懂百科-http://wswcn.cn/25026.html

常用的BUG查找方法基本就是以上这几种,可能你还有不同的叫法或者其他方法。在实际问题解决中,可能需要多种方法结合使用。文章源自略懂百科-http://wswcn.cn/25026.html

优先解决可重现的bug,有些bug不是很明显,那么就想办法增加他的破坏性,把现象放大,这在我们的系统压力测试时会经常遇到一种方法。有时候我们甚至需要问自己,如果我要实现bug描述的现象我要怎么写代码才行?文章源自略懂百科-http://wswcn.cn/25026.html

最后放几个奇葩注释!文章源自略懂百科-http://wswcn.cn/25026.html

// _ooOoo_
// o8888888o
// 88" . "88
// (| -_- |)
// O = /O
// ____/`---____
// . | |// `.
// / ||| : |||//
// / _||||| -:- |||||-
// | | - /// | |
// | _| ---/ | |
// .-__ `-` ___/-. /
// ___`. . /--.-- `. . __
// ."" < `.____<|>_/___. >"".
// | | : `- `.;` _ /`;.`/ - ` : | |
// `-. _ __ /__ _/ .-` / /
// ======`-.____`-.________/___.-`____.-======
// `=---=
//
// .............................................
// 佛祖镇楼 BUG辟易
// 佛曰:
// 写字楼里写字间,写字间里程序员;
// 程序人员写程序,又拿程序换酒钱。
// 酒醒只在网上坐,酒醉还来网下眠;
// 酒醉酒醒日复日,网上网下年复年。
// 但愿老死电脑间,不愿鞠躬老板前;
// 奔驰宝马贵者趣,公交自行程序员。
// 别人笑我忒疯癫,我笑自己命太贱;
// 不见满街漂亮妹,哪个归得程序员?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//_ooOoo_
//o8888888o
//88" . "88
//(| -_- |)
// O = /O
//___/`---____
//. | |// `.
/// ||| : |||//
/// _||||| -:- |||||-
//| | - /// | |
//| _| ---/ | |
// .-__ `-` ___/-. /
//___`. . /--.-- `. . __
//."" < `.____<|>_/___. >"".
//| | : `- `.;` _ /`;.`/ - ` : | |
// `-. _ __ /__ _/ .-` / /
//======`-.____`-.________/___.-`____.-======
//`=---=
//
// .............................................
// 佛曰:bug泛滥,我已瘫痪!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
*
* ┌─┐ ┌─┐
* ┌──┘ ┴───────┘ ┴──┐
* │ │
* │ ─── │
* │ ─┬┘ └┬─ │
* │ │
* │ ─┴─ │
* │ │
* └───┐ ┌───┘
* │ │
* │ │
* │ │
* │ └──────────────┐
* │ │
* │ ├─┐
* │ ┌─┘
* │ │
* └─┐ ┐ ┌───────┬──┐ ┌──┘
* │ ─┤ ─┤ │ ─┤ ─┤
* └──┴──┘ └──┴──┘
* 神兽保佑
* 代码无BUG!
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
*
* __ (__`
* (__` `
* ``
* ``
* ``
* _ _ |
* (___)(___)
* (0) (0)`
* |~ ~ ,
* | |
* | / __..----.._.._
* | | ` _.-- _ `.
* Y | ` `
* / | | `
* /_...___| | `
* / `. | /
* | | | /
* | | | /
* | () () | | | _.-
* `. . `._. |______..| |-|
* `------ | | | | | || |
* | | | | | || |
* | | | | | || |
* | | | | | || | Joan Stark
* _____ | | | |____| || |
* jgs / `` |-`/ ` |` |
* ___________________
* """"""""" """"""""""
*
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*
.::::.
.::::::::.
::::::::::: FUCK YOU
..:::::::::::
::::::::::::
.::::::::::
::::::::::::::..
..::::::::::::.
``::::::::::::::::
::::``::::::::: .:::.
:::: ::::: .::::::::.
.:::: :::: .:::::::::::.
.::: ::::: .::::::::: :::::.
.:: :::::.::::::::: :::::.
.:: :::::::::::::: ``::::.
...::: :::::::::::: ``::.
```` :. ::::::::: ::::..
.::::: :````..
*/文章源自略懂百科-http://wswcn.cn/25026.html

文章源自略懂百科-http://wswcn.cn/25026.html

懵懂先生
  • 本文由 发表于 2022年8月5日 14:36:18
  • 转载请注明:http://wswcn.cn/25026.html
网文资讯

寿司的制作方法(寿司的做法其实不难)

前段时间,跟大家分享了反卷芒果寿司的做法,虾肉与芒果完美搭配,味道特别的清新。 今天,我再跟大家分享一道樱花寿司的做法,不需要担心卷不好散掉,好看又好吃,做法又简单。 用料: 寿司海苔,黄瓜,火腿肠,...
网文资讯

孔令辉老婆(孔令辉为什么不娶马苏?)

世界乒乓球王子孔令辉,相信大家都不陌生他曾为国家夺得多枚金牌,退役后依然投身与乒乓球事业,担任国家女兵的教练,还被网友称为最称职的教练。 孔令辉虽然退役多年,但他算得上是中国乒乓界的传奇人物,他是国乒...
网文资讯

昨日到院人员请报告(北京中医医院院长刘清泉:发挥独特作用)

新年伊始,在大连、沈阳疫情防控中,都有一位中医专家的身影,他就是北京中医医院院长刘清泉。 1月12日下午,辽宁省沈阳市召开新型冠状病毒肺炎疫情防控工作第二十六场新闻发布会。沈阳市第六人民医院副院长王磊...
网文资讯

唐朝宦官专权为何如此可怕

宦官,是中国古代专供君主及其家族役使的官员。自东汉时期开始,均为阉人担任。宦,星座之名,宦者四星在帝座之西,而用以为帝王近幸者的名称。又称宦者、中官、内官、内臣、内侍、等。 有一点需要说明,那就是:后...