8

软件系统一旦出现 bug,绝大多数情况下是 需求混乱导致的。

 3 years ago
source link: https://www.v2ex.com/t/795104
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

软件系统一旦出现 bug,绝大多数情况下是 需求混乱导致的。

  James369 · 8 小时 32 分钟前 · 891 次点击
写了这么多年的软件,已经练就了一身铜墙铁壁,不吹牛的说,“我”写出来的代码基本没有什么 bug 。
更确切的说是在软件层面很少出现什么 bug,为什么,主要还是得益于严密的思维,丰富的经验积累,比如:
~ 传入的参数控制好边界,非法值的判断。
~ 所有的异常情况考虑周全,捕获到位。
~ 严格按照接口规范处理。
~ 返回码 /错误码处理到位。
~ 不写花里胡哨 /晦涩难懂的代码。
~ 谨慎处理并发 /异步 /回调。
~ 注意对象的生命周期,引用释放。
~ 写完一个功能,立马自测一遍。
...
这种防御式的编程模式,基本做到了滴水不漏。所以给出去的软件模块 99%都不会有问题。


然而 bug 终究会产生,这个时候“我”发现,大部分的 bug 都源自需求的混乱不勘,功能的杂乱堆叠,业务的纠缠不清。
所以,再强大的软件设计师,都会被不好的需求搞死。(比如考虑各种兼容性,比如强行让一只鱼飞上天)
这也是为什么再牛逼的操作系统也是 bug 连绵,补丁不断,因为需求太复杂了。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK