第12章

时间。

时间。

额๩。另一种称为ba9๗t服务器、微软有名的用于

额。另一种称为ba9๗t服务器、微软有名的用于

试员升迁的上限导致了人们的离去,对奥尔森来说一个更棘手的问题๤是如何

试员升迁的上限导致了人们的离去,对奥尔森来说一个更棘手的问题是如何

人。其二便是领袖气质。一般来说微软的经理人员都不具备这种素质。

人。其二便是领袖气质。一般来说微软的经理人员都不具备这种素า质。

它进入新า市场时,它也面临许多未来的挑战和强有力的竞争者。但它也有许

它进入新市场时,它也面临许多未来的挑战和强有力的竞争者。但它也有许

员使用较高层次的语言,如c或c+ใ+来编写代码,而且还随机地在编译器

上运行它。编译器自动把高层次代码翻译成汇编语言代码,然后译成一种

低层次的机器代码以使计算机可以直接理解。比如excel40中,语言的

组成是75๓7%的c代码,108%ื的汇编代码和1้35%的其他代码如包含文件

和标志文件。10微软也๣曾在9ord中用80%ื的9tosh

平台之ใ间传送,另外20%的代码采用汇编语言。

增加汇编语言的使用可以加快执行度。例如在9indo9snt35上使用

excel和9๗ord的新3๑2位版本的自动宏测试的计算约需74秒的时间;而旧ງ

的包含更多汇编代码的16位版本只需70秒。11除了加快产品的度,一些

开员还需要理解早期的ms-dos代码,它是微软和ibm用intel汇编语言编

写的,其目的是为ฦ了减少内存要求和加快处理度。

这种对产品的深层次的理解也๣包括掌握编译器生成不良代码的结构,然

后编写代码避免或替代那ว些结构。德·沃恩估计他的开员们对50%以上的

源代码都阅读由编译器生成的汇编代码。他还抱怨微软不得不教会开员在

这一低层次上理解系统。大学里的计算机课程一般并不充分强调如何保证对

存储和执行时间的有效利用,而这对于出售软件产品给个人计算机用户是至

为重要的。德·沃恩详尽阐述了这些观点:

我们确实鼓励人们在非常低的层次上理解系统是如何工作的不

幸的是你的工具常常不能ม充分地挥作用,9indo9s和mac系统也不是

非常理想。所以你必须ี深入那一层次,找出它不能很好工作的原因。这

是推动力之一。另一主要动力是我们对确保产生最好的产品代码兴趣浓

厚。

幸的是你的工ื具常常不能ม充分地挥作用,9indo9s和mac系统也๣不是

非常理想。所以你必须深入那一层次,找出它不能很好工ื作的原因。这

是推动力之一。另一主要动力是我们对确保产生最好的产品代码兴趣浓

厚。

这是我们必须教给人们的态度。人们在学校里学习时,那没什么关

系。但是当你制造一件人们想买的产品时,那绝对是有关系的思路

是去掌握编译器所不擅长的构造。

我们可以要求编译器方面的专家来修改它,但是从某种角度上讲那

是一件长期的事情,我们要求的是编写不存在这一问题的代码。

原则四:在构造产品的过程中持续测试产品

微软里有不少原则指导着测试,而每一条原则都帮助小组在构造产品的

过程中持续地测试它们。这种在开同时测试的概ฐ念使微软与众不同:因为

太多的软件开员基本是在开周期的尾声才强调产品测试的重要性,而这

时要修改错误可能是特别ี困难和耗时的。而且,微软组现在是从一个相当广

泛的角度来测试他们的产品的。

比如,项ำ目创造了开员可以每天运行,并且必须在他们把代码改变记

录入源代码主ว版本之前运行的自动测试。测试系统通过使用产品的宏语言或

模拟键盘敲击而自动执行。开员们创造他们产品的“调试版本”,包括特

别规则,不仅为了检查特别的条件,还可帮助现和确定错误的位置,他们

还实施代码复查以在阅读代码的过程中现错误。可用性测试邀请“街边”

的人们来到专门的实验室评价产品特性使用的方便程度。项目还把测试员与

开员配对在微软,每一个开员差ๆ不多都有一个ฐ测试员。测试员通过

阅读说明而在早期就开始准备测试方案以及测试策略๓;开员在记录他们的

代码之前向他们的“测试伙伴”他们代码的私人版本以供测试。

测试员然后使用多种方式。一种包括高度结构化的测试脚本称为“基