《人月神话》笔记:削足适履

本章谈及“程序的开销和规模控制”。

程序的开销(此处是指运行开销吧?),包括两个方面:运行时间,运行时所占据的空间。

程序的内存开销多少合宜呢?“应该从整体上来进行评估。”也就是同时考虑硬件开销+软件开销。

作者对规模控制的看法:
“对项目经理而言,规模控制既是技术工作的一部分,也是管理工作的一部分。他必须研究用户和他们的应用,以设置将开发系统的规模。接着,把这些系统划分为若干部分,并设定每个部分的规模目标。由于规模-速度权衡方案的结果在很大的范围内变化,规模目标的设置是一件颇具技巧的事情,需要对每个可用方案有深刻的了解。聪明的项目经理还会给自己预留一些空间,在工作推行时分配。”

作者总结了“OS/360项目”在规模控制方面的教训:
    ● 和制定驻留空间预算一样,应该制定总体规模的预算;和制定规模预算一样,应该制定后台存储访问的预算。
    ● 在指明模块有多大的同时,确切定义模块的功能。
    ● 在整个实现的过程期间,系统结构师必须保持持续的警觉,确保连贯的系统完整性。培养开发人员从系统整体出发、面向用户的态度是软件编程管理人员最重要的职能。

规模控制的技能
    ● 用功能交换尺寸。为用户保留多少(功能的)选择?
    ● 考虑空间-时间的折中。对于给定的功能,空间越多(当然开销也更高^_^),速度越快。

项目经理可以做两件事来帮助他的团队取得良好的空间-时间折中。
(1)一是确保他们在编程技能上得到培训,而不仅仅是依赖他们自己掌握的知识和先前的经验。
(2)认识到编程需要技术积累,需要开发很多公共单元构件。

最后,作者提到一个非常重要的观点“ 数据的表现形式是编程的根本!精炼、充分和快速的程序来自于程序员精湛的技艺。技艺改进的结果往往是战略上的突破,而不仅仅是技巧上的提高。
    ● 这种战略性的突破,有时是一种新的算法,如快速傅里叶变换,或者是讲比较算法的复杂度从n2(注:2是指数,即:n的2次方)降低到nlogn(注:n是真数)。
    ● 更普遍的是,战略上突破常来自数据或表的重新表达——这是程序的核心所在。
“由于缺乏空间而绞尽脑汁的编程人员,常常能通过从自己的代码中挣扎出来,回顾、分析实际情况,仔细思考程序的数据,最终获得非常好的结果。实际上,数据的表现形式是编程的根本(之一^_^)。”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值