首页 > 其他分享 >人月神话阅读笔记(三)

人月神话阅读笔记(三)

时间:2023-03-31 20:33:44浏览次数:38  
标签:1.5 神话 系统 笔记 文档 内存 阅读 设计 工作量

第4章:贵族专制、民主政治和系统设计
概念的完整性是系统设计中最重要的考虑因素

第5章:画蛇添足
在开发第1个系统时,结构师倾向于简洁,之后不断产生装饰和润色。第二个系统是最“危险”的,往往会过度设计。而随后的系统由于之前的经验会相互验证,因此能识别出不够通用的部分。

第6章:贯彻执行
设计结果必须由一个人或两个人完成,以确保这些决定是一致的。

确保贯彻执行:

手册
形式化定义
直接整合到代码
会议
多重实现
电话日志
产品测试
第7章:为什么巴比伦塔会失败
为什么?因为缺少交流。文档(手册)很重要。

但有一种看法认为:编程人员只了解自己负责的部分效率更高。确实,但这要求精确,完整地定义所有地接口。

【产品负责人】&【技术主管】

第8章:胸有成竹
软件工作量是根据规模成指数型增长的,指数大约是1.5,即:
工 作 量 = 常 数 × 指 令 的 数 量 1.5 工作量 = 常数 \times 指令的数量^{1.5}
工作量=常数×指令的数量
1.5

实践是最好地老师
实践是最好地老师,但智者还能从其他地方有收获。

第9章 削足适履
这一章讨论了内存成本问题。基本的教训是:

制定预算
确切定义模块的功能
需要有人进行宏观掌控。因为团队内的成员都是争取小红花的学生,都在局部优化自己的程序而很少考虑整体影响。
另外的措施是:

让用户选择模块,减少不需要的内存占用。
让“时间”换“空间
此外,革新的算法或者数据结构也能从根本上优化。

(不过,书中讨论的关于内存的限制情况已经和如今差别巨大。例如对于“时间”和“内存”的折中,从我个人在做交互工具的经验而言,“时间”往往比较重要,如果能用多点的“空间”来换取,一般会做这种交易。)

第10章:提纲挈领
任何管理任务的关注焦点都是:时间、地点、人员、项目内容、资金。

为什么要有正式的文档?

书面决策是必要的,只有记录下来,分歧才会明朗,矛盾才会突出。
文档能够作为同其他人沟通的渠道。
项目经理的文档可以作为数据基础和检查列表。

标签:1.5,神话,系统,笔记,文档,内存,阅读,设计,工作量
From: https://www.cnblogs.com/laohei114514/p/17277415.html

相关文章

  • CSS菜鸟笔记
    最近想学习学习前端相关,先从基础吧;本文主要是在菜鸟笔记上的html教程中的笔记或者总结,主要给自己查询;参考链接:http://www.runoob.com/CSS简介CSS指层叠样式表(CascadingStyleSheets);样式定义如何显示HTML元素,通常存储在样式表中把样式添加到HTML4.0中,是为了解决内容与......
  • 构建之法阅读笔记
     第四章《两人合作》。本章主要涉及代码规范,极限编程,结对编程,两人合作不同阶段,影响他人技巧几方面的知识点。以下是我的问题:1.原文:注释(包括所有源代码)应该只用ASCII字符,不要用中文或特殊字符,否则会极大的影响程序的可移植性。根据对注释的解释,注释就是对代码的解释和说明,其目......
  • 人月神话读书笔记2
    第七章—为什么巴比伦会失败?巴比伦的失败是因为缺乏交流。他们无法交谈,从而无法合作,以至于工作陷入停顿。因为不知道对方在做什么,许多小组修改自己程序的功能、规模和速度,他们明确或者隐含地更改了一些有效输入和输出结果用法上的约定。由于对其他人的各种假设,团队成员之间的理解......
  • ETCD源码阅读(三)
    DAY2:阅读raftexample:etcd/contrib/raftexampleserveChannels()func(rc*raftNode)serveChannels(){ snap,err:=rc.raftStorage.Snapshot() iferr!=nil{ panic(err) } rc.confState=snap.Metadata.ConfState rc.snapshotIndex=snap.Metadata.Index r......
  • ETCD源码阅读(二)
    DAY1:阅读raftexample:etcd/contrib/raftexampleraftexample包括三个组件:一个基于raft的kvstore、一个RESTAPIServer、一个基于etcdraft实现的RaftNode。其中RaftNode也拥有一个Httpserver,用于与peer节点进行通信。RESTAPIServer则是这个RaftNode的client。kvs......
  • ETCD源码阅读(一)
    DAY0:ETCD架构下图中展示了etcd如何处理一个客户端请求涉及到的模块和流程。图中淡紫色的矩阵表示etcd,它包括如下几个模块:etcdserver:对外接受客户端的请求,请求etcd代码中的etcdserver目录,其中还有一个raft.go的模块与etcdraft库进行通信。etcdserver中与......
  • 2023年3月31日(软件工程日报)人月神话读书笔记3内容
    第8章:胸有成竹软件工作量是根据规模成指数型增长的,指数大约是1.5,即:工作量=常数×指令的数量1.5工作量=常数\times指令的数量^{1.5}工作量=常数×指令的数量1.5实践是最好地老师实践是最好地老师,但智者还能从其他地方有收获。第9章削足适履这一章讨论了内存......
  • 【做题笔记】树形 dp
    1.luoguP2016战略游戏1.1Solve设计状态\(dp[i][0/1]\)表示在\(i\)子树内,放/不放第\(i\)个节点使其合法所需的最少的士兵数目。则有:不选\(i\)节点,则\(i\)的儿子必须选;选\(i\)节点,则\(i\)的儿子可选可不选;因此,转移方程为:$dp[i][0]=\sumdp[son[i]][1......
  • kafka学习笔记
    一、初识kafkakafka的数据单元被称为消息,为了提高效率,消息会被分批次写入kafka,批次就是一组消息,这些消息属于同一个主题和分区。批次数据会被压缩,这样可以提升数据的传输和存储能力,但要做更多的计算处理。kafka的消息通过主题进行分类,主题可以被分为若干个分区,消息以追......
  • gulp笔记 2 (进阶一点点:使用bower来管理前端依赖)
    其实gulp比例1中的内容已经基本满足开发要求了。此文为进阶的一点点知识#1 安装bower(bower是个纯web前端依赖管理工具。)   npminstall-gbower #版本为1.8.14,必须安装在全局   bowerinit#会生成一个bower.json文件,选项寂寞默认就行,bower的库户自动放到bowe......