人月神话读书笔记(三)

削足适履

  给我的感受是:除了运行时间外,内存的开销也很重要。这个观念其实早在大一刚接触算法不久后,就有了这个概念,做算法题的时候不仅讲究时间复杂度,还要考虑他的空间开销程度。同样,读了本节后让我知道他也同样适应于开发的软件。

  规模控制,对项目经理而言,规模控制既是技术工作的一部分,也是管理工作的一部分。他必须研究用户和他们的应用,以设置将开发系统的规模。接着,把这些系统划分成若干部分,并设定每个部分的规模目标。由于规模-速度权衡方案的结果在很大的范围内变化,规模目标的设置是一件颇具技巧的事情,需要对每个可用方案有深刻的了解。聪明的项目经理还会给自己预留一些空间,在工作推行时分配。然而仅对核心功能进行规模控制是远远不够的,还需结合其他方面一起加入预算。在为每个单元设立核心规模的同时,要顺便设置访问的目标,否则我们的管理控制系统会失去度量,最后每个人的核心大小没有问题,然而规模上却发生了问题。

  空间技能,用功能交换尺寸:任何一系列特殊选项被合并在一起进行分组时,程序需要的空间较少。这很像小汽车。如果把照明灯、点烟器和时钟作为整个配件来标明价格,则成本会比单独提供这些选择所需要的成本低。所以,设计人员必须决定用户可选项目的粗细程度。空间-时间的折衷:对于给定的功能,空间越多,速度越快。项目经理可以做两件事来帮助他的团队取得良好的空间-时间折衷。一是确保他们在

编程技能上得到培训,另外一种方法是认识到编程需要技术积累,需要开发很多公共单元构件。

  数据的表现形式是编程的根本。好比之前学过的算法问题,一开始我所能用的解决排序的问题就是冒泡二重循环,复杂度为O(n2);然而通过快排(sort),我可以将时间复杂度降到nl(lgn)级别,大大的节省时间。

猜你喜欢

转载自www.cnblogs.com/xiaofengzai/p/12969646.html