A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

xunwu23

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© xunwu23 初级黑马   /  2019-3-20 10:29  /  741 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

之前在网上上看到这么一个问题:程序员为什么要一直写 bug ,不能一次性写好吗?其实,我们明白人都知道,提问这种问题的人,肯定不是程序员,所以,我就举了两个例子。
这是我通过大学几年的时间,现在在黑马心血来潮写的答案。
这个问题一看就知道不是程序员提问的,程序员都知道是怎么回事。一定是一个外行人的提问。
所以,对外行解释程序中 Bug ,不能说的太专业,我讲两个故事,外行人看了就明白了。
第一个故事:为啥你家装修完了,你总是不满意呢?
很多装修过房子的人都知道,装修房子的过程有多辛苦,多操劳,装修完了总是还有很多不满意和缺憾。
从交房的那一刻起,你就开始寻找设计师(跟设计软件的设计师异曲同工),开始根据你家房子的尺寸和构造,朝向和你平时的生活习惯,储藏东西的多少,进行房主的需求挖掘,这里相当于软件的Pr。设计师根据你的需求设计工程图纸和设计效果图(这里相当于软件设计完了)。你感觉设计的不错,好开工,水电工,瓦工,木工,油漆工,开始进场,根据效果图施工(这里的各种工互相配合,互相衔接,相当于软件中的前端和后台等工程师敲代码配合开发)。
施工完了,得有工程监理和业主验收,相当于开发中的测试。
到这里看起来很正常,但是,可能水电改的有点瑕疵,少了一个插座,你不满意了,可能油漆有的地方涂抹不均匀,你也不满意了,可能木工打的柜体,磕碰了一点,你也不满意了。这就是程序中的 bug 。
你怎么不说,装修不能给我一次性装修好呢?看看有多少工程衔接,各种工种配合,你能保证一点问题没有么?生活中处处都有不完美的地方,干什么活有十全十美的东西呢?
你这只是验收(相当于开发中的测试)的时候发现的问题,等你真正入住的时候,真正生活的时候,可能还会发现各种当初对设计不满意的地方,很多东西等真正用的时候,才发现当初应该这么设计(这也算 bug)。
第二个故事:不按常理出牌
你在使用一个产品的时候,人家明明有说明书,有使用步骤,你作为用户,就是反着操作,比如:使用高压锅的时候,明明得先放气,才能掀开锅盖,你非先掀开锅盖。意外发生了,嗖一下炸了!这就是程序中的崩溃,属于大 bug 。
人家设计程序的时候是有一套逻辑和操作步骤的,但是呢,用户不清楚,就知道瞎按,瞎操作,众口难调,用户几十万的产品,每个用户操作流程都不给你按照设计的来操作,就容易导致程序出 bug ,甚至崩溃!你说程序员能把所有的情况想到么?
还不是尽量想,想不到的等出了问题才能知道,才能修改!
其实,软件最大的风险来自于软件的复杂度,而软件的复杂度是来自于业务逻辑的复杂性。很多人,包括产品和客户其实都有时候理不清整体的业务逻辑,更无法预测业务逻辑带来的其他问题。这就难免考虑不周,形成 bug 。软件的稳定性,可靠性其实就是业务逻辑复杂度的副产品。
最后,编程哪有想象的那么容易啊!作为程序员,自编程开始,Bug 就会如影随形,因为它就是你的影子。Bug 就是软件的影子,和软件就是与生俱来的,是不可逃脱的好 CP,有着难舍难分的好感情。Bug 无处不在,对于程序员的酷爱,超越程序猿的老婆,它对于软件的痴迷,比程序猿还要厉害,即使再牛逼的程序猿也逃脱不了 Bug 的魔掌。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马