博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Think HY 读《观止-微软》一书有感
阅读量:2488 次
发布时间:2019-05-11

本文共 2161 字,大约阅读时间需要 7 分钟。

8月中旬在豆瓣上有一本书吸引了我,这本书便是< > ,英文名<> 。这本书讲述的是微软在八十年代末九十年代初设计和开发NT内核的过程,所以书名下还有一个冗长的副标题--微软创建NT和未来的夺命狂奔(The Breakneck Race to Create Windows NT and the Next Generation at Microsoft)。Windows NT完成于93年年中,而这本书的英文版也于94年6月发布,时隔15年其中文版终于能与我们见面。

与前几年技术专家李维写的<> 不同,本书的作者Pascal Zachary是文科出身,这本书写作风格更像报告文学。这本书面向的读者还有非技术人员,所以对技术和行业以及软件本身的分析和描述很少,作者关注的是人,设计、开发、测试Windows NT的工程师。作者不惜笔墨的介绍他们的个人成长史、工作、家庭。所以看过此书感觉软件开发过程好像就是与人不同沟通的过程,在软件项目中,这个过程所花的时间可能比与机器交流的时间还多。

书中的主人翁是David Cutler ,加入微软之前,此公就职于DEC,设计了大名鼎鼎的VMS系统,因为在DEC的"棱镜"取消了,一怒之下出走DEC,而被盖茨慧眼识中收入麾下。 David Cutler加入微软之后一直在考虑着设计一款全面超越那帮博士们设计的Unix,而当时盖茨刚从Windows操作系统中尝到了甜头,雄心勃勃的正准备打造一款为21世界准备的操作系统 ,于是,两个人为了这个共同的理想开启了NT项目。

Culter最初为NT内核的设计制定了三个目标: 1 可移植性:创造出一个可以适合每一种硬件的操作系统。2 可靠性:  用“防弹”系统来结束不必要的崩溃。3 个性化:NT应该灵活十足,它将拥有不止一种用户界面。面对可移植性的问题,Cutler决定用高级语言来实现NT系统,这意味着NT会很大,是的,最终发布的NT版本是很大,但硬件行业的飞速发展帮了NT的忙。而对于可靠性和个性化的问题,Cutler大胆的在NT中采用了微内核设计方式,可这要付出速度的代价,Cutler和他的团队最终用高超的编程技巧弥补了速度的不充。

90年,微软与IBM在OS/2项目上分道扬镳,OS/2项目的人马加入到Cutler的团队,微软决定让支持更美观的界面和更好的易用性的 Windows与追求可移植性、可靠性的NT内核合流, 这次合流让微软能集中精力打造Windows NT这款改变世界的操作系统。

本书后面三章写得比较草率,作者啰嗦着BUG的更改过程和团队成员心理状态,没有站在更高的角度分析软件工程的得与失,也没有全面的介绍Windows NT对软件业的影响,这样的内容可能只能在布鲁克斯 的< >找到,对文科背景的作 者勉为其难。

总的来说,这是本不错的书,NT系统发布一年,作者能将这项复杂的工程活动描述得如此传神,实属不易。感谢Pascal和中文版的译者将本书带给我们,让我们能重历那无比艰辛而又激昂的NT创建过程。

微软的张亚勤博士评价此书:

“合上这本书的时候你会发现,软件不仅是智慧的结晶,也是信仰、尊严和魅力的代名词。“

而我,作为一个刚进入软件行业的新人,从此书中看到的是软件开发过程的复杂、艰辛和疯狂,正如书中所述,研发软件的过程是世界上最复杂的智力活动,而正是那些复杂才成就了Cutler们的伟大,我们应该向伟大的程序员致敬。

在软件开发方面的,这本书带给我以下几点思考:

1. 吃你自己的狗粮 eating your own dog food,只有通过吃狗粮,创作者才能发现由软件系统各个部分相互作用产生的问题。这一点与Unix的成功原因相似,The UNIX Time- Sharing System一文中曾提到Unix的开发者同是也是Unix系统的使用者,所以他们会不断的改进系统。

2.  构建与测试的重要性,Cutler甚至亲自驻扎在构建实验室,这两个环节决定了系统的最终质量。

3.  编码质量、可读性的重要性。 Cutler的代码风格,一行代码一行注释,在Google Code上搜索David Culter的大名可以欣赏到他写的代码(发现他老人家60岁时还在编码)。

4. 团队的重要性。 Cutler在DEC组建了他的核心团队,这些团队成员性格各异,有着不同的专长。 NT每每到最关键的时候,Cutler的团队总能有人挺身而出。

5. 市场因素是软件项目成功的内因,技术顶天,市场立地。NT的经理穆格利亚反复强调的是

“计算机软件尽管一定是由程序员构思和创造出来的,但一定要反映当前的市场状况和客户需求“。

6. 伟大的工程作品总是来自伟大的公司,一来大公司牛人多,二来大工程项目要耗费大量人力、财力,非一般机构所能承受。

-------------------------

 

本文来自CSDN博客,转载请标明出处:

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15783504/viewspace-623583/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15783504/viewspace-623583/

你可能感兴趣的文章
判断时间或者数字是否连续
查看>>
docker-daemon.json各配置详解
查看>>
Docker(一)使用阿里云容器镜像服务
查看>>
Docker(三) 构建镜像
查看>>
Spring 全家桶注解一览
查看>>
JDK1.8-Stream API使用
查看>>
cant connect to local MySQL server through socket /tmp/mysql.sock (2)
查看>>
vue中的状态管理 vuex store
查看>>
Maven之阿里云镜像仓库配置
查看>>
Maven:mirror和repository 区别
查看>>
微服务网关 Spring Cloud Gateway
查看>>
SpringCloud Feign的使用方式(一)
查看>>
SpringCloud Feign的使用方式(二)
查看>>
关于Vue-cli+ElementUI项目 打包时排除Vue和ElementUI
查看>>
Vue 路由懒加载根据根路由合并chunk块
查看>>
vue中 不更新视图 四种解决方法
查看>>
MySQL 查看执行计划
查看>>
OpenGL ES 3.0(四)图元、VBO、VAO
查看>>
OpenGL ES 3.0(五)纹理
查看>>
OpenGL ES 3.0(八)实现带水印的相机预览功能
查看>>