《电脑使用说明书》系列连载二

               陈冰 著

               陈冰,笔名大溪水,小恐龙(本书中使用小恐龙)
       声明:本书为原创,如要转载,必须注明出处(http://chenyucheng.blog.51cto.com/  )。严禁商业使用或刊载。

 

1.1.2 软件方面的原因

除不可抗力外,电脑所出的问题有1%是来自硬件方面的,其余的99%则来自软件。你可能会奇怪为什么会有这么多的软件问题?病毒和流氓软件等邪恶势力所引起的破坏自不必说,即便是开发初衷完全无害的程序也经常会导致一系列的问题,其最主要的原因之一,因为有好几个最主要原因,其最主要的原因之一是开发这些大大小小的软件的开发人员的水平是参差不齐的。
 
一般大众经常会认为能写软件的人都是很了不起的,但实际情况并非如此。正如厨师不计其数,但名厨只是凤毛麟角。一些由于种种主观和客观原因而导致责任心缺失的软件开发人员在老板的压榨模式和封闭开发状态下(没有QQ、没有MSN、没有电话,只有大量的垃圾食品和永远不足的睡眠)忙活他手头的那个软件或他所负责的那个模块时,唯一希望的就是编译(把人能看懂的代码变成计算机能看懂的程序)能够通过并产生他所希望的结果,只要这步工作完成了,这个胡子拉碴满脸倦容的程序员就会啃上几口汉堡包赶紧进行下一部分的工作,而把测试软件健壮性的工作推给测试人员,而不负责任的测试人员唯一祈祷的就是上帝保佑这段程序不要测试出问题。
 
尽管软件业一直在不断提出和实施各种先进的开发思想和开发方法来不遗余力地提高软件的质量,这些先进的思想和方法包括设计模式、敏捷开发、极限编程、单元测试、重构、UML等等等等,以后还有会更多的新名词出来,总之,都是一些令大众感到高深莫测很有技术含量的东西。但现实总是残酷的,考虑到压榨模式考虑到封闭开发考虑到种种因素,要想让软件的开发是经过充分设计和充分测试的,几乎就是不可能的。因此,当这个脆弱的小生命猛然间从温暖的测试环境来到凶险的Windows自然界时,大自然恶劣的环境及各种举止怪异的猛兽和大型食草动物会立刻让这个小生命惊恐的抖作一团。弱肉强食,它必须适应。渐渐的这个小家伙摸到了这个世界运行的规律,那就是——没有规律。它甚至发现连它本身都是个厉害的角色,有时候它自己走路不小心被拌了一下,都能让离它很远的一头大型程序瘫痪,甚至能让整个大自然都在极度的惊骇中瞬间土崩瓦解。
 
我想说的是,软件并不是什么特别精细的东西,不是像你可能以为的那样不小心删掉了程序中的一个小字母,比如说“baby”的“b”吧,整个程序就不能运行了。相反,在这种情况下,程序通常都会照常运行。有时甚至你删掉程序中的一大片代码,程序依然可以正常的工作(至少看起来是这样),原因可能是这段代码正好落在一个不太容易被执行到的条件分支语句中,也有可能本身就是程序员遗留在代码中的一些没有用到的变量、函数、子程序或其他没有多大用处的东西。
为什么要在程序中留下这些没有用的代码呢?  且听下回分解:)