首页 > 其他分享 >2023年3月31日(软件工程日报)人月神话读书笔记3内容

2023年3月31日(软件工程日报)人月神话读书笔记3内容

时间:2023-03-31 18:33:31浏览次数:37  
标签:1.5 需要 读书笔记 31 程序 文档 内存 2023 代码

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

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

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

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

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

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

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

为什么要有正式的文档?

书面决策是必要的,只有记录下来,分歧才会明朗,矛盾才会突出。
文档能够作为同其他人沟通的渠道。
项目经理的文档可以作为数据基础和检查列表。
第11章:未雨绸缪
为舍弃而计划,无论如何,你一定要这么做

唯一不变的就是变化本身

程序维护就是:前进两步,后退一步。
随着修改的增多,还可能变为:前进一步,后退一步。

第12章:干将莫邪
工具很重要,需要专门人员开发

“仿真装置”很重要

不确定性是所有情况中最糟的,因为它剥夺了程序员寻找BUG的能力

第13章:整体部分
系统各个组成部分的开发者都会做出一些假设,而这些假设之间的不匹配是大多数致命和难以察觉的BUG的主要来源。

自上而下的设计。

第14章:祸起萧墙
灾祸通常来自于白蚁的肆虐,而不是龙卷风的侵袭。项目进度经常以一种难以察觉,但是残酷无情的方式慢慢落后。

里程碑的日期选择是一个估计技术上的问题,很大程度上依赖以往的经验。
里程碑的选择只有一个原则:必须是具体的,特定的,可度量的事件,能够进行清晰的定义。

并不是每一天的滞后都等于灾难。如何判断哪些偏离是关键呢?可以采用PERT图(Program Evaluation and Review Technique)。

有两种掀开毯子将污垢展现在老板面前的方法:

减少角色冲突和鼓励状态共享。老板决不在检查状态的时候做安排。
猛地掀开地毯。建立能了解状态真相的评审机制。
第15章:另外一面
这一章强调了“文档”的重要性。即使是完全开发给自己的程序,仍然是必要的,因为记忆会衰退。

不同用户需要不同级别的文档:

使用程序。不需要了解程序的代码。
依赖程序。需要调用程序,因此需要知道程序代码的外部接口
修改程序。需要完全知道程序中代码的内部结构。
“流程图”被过分吹捧了。

自文档化的程序:
试图努力维护不同文件之间的同步关系,是一件费力不讨好的事情。 但我们在文档编制的时候违反了这一规则:程序变动总是不能及时准确地反映在文档之中。相应地解决方法就是:将文档整合到源代码中。
其实说白了,就是通过加注释等方法提高代码的可读性。如果代码非常好读懂,那就不需要文档了。

第16章:没有银弹
所有的软件活动包括:

根本任务:即打造构成抽象软件实体的复杂概念结构。
次要任务:即使用编程语言表达这些抽象实体,在空间和时间限制下将它们映射成机器语言。
目前取得的进步基本上都是“次要任务”上的,但是“根本任务”上的困难一直存在,并且可以预见在短时间内无法取得数量级上的进步。

困难的特性:

复杂度
一致性
可变性
不可见性

标签:1.5,需要,读书笔记,31,程序,文档,内存,2023,代码
From: https://www.cnblogs.com/ewqewq/p/17273678.html

相关文章

  • SB-RocketMQ-Provider-Consumer20230331
     一、生产者1、pom.xml<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.apache.rocketmq</groupId>......
  • 20230329
    D题-三天前(ThreeDaysAgo)题意给你一行仅由数字(0~9)构成的串,计算满足“条件”的子串的数量。条件是:该数字串可以拆分成两个「由相同数量的对应数字」构成的的数字串。串的最大长度为5*105思路如何判断一个数字串是符合“条件”的呢?举几个例子:07211270符合,00772211符......
  • 2023年3月31日
    计划看crm项目,看一个功能到底怎么实现,继续梳理巩固ssm框架,熟练掌握继续修改页面,并且熟悉现有项目,做到极其熟悉,尝试开发审核和mock功能回顾之前几天的学习记录,熟悉各个知识点,包括Java,JavaScript,mybatis,maven,servlet看看java书籍执行09点19分  开始10点52分  回顾......
  • P3190 [HNOI2007]神奇游乐园
    P3190[HNOI2007]神奇游乐园用\(unordered\_map\)有个坑,写在了下面这个博客https://www.luogu.com.cn/blog/zhouzhuo/gei-yong-unorderedmap-di-hou-ren-ti-gong-dai-ma再贴一下代码吧点击查看代码#include<bits/stdc++.h>#include<unordered_map>#defineintlonglong......
  • 202031607332-阿卜杜热合曼·麦麦提艾萨 实验一 软件工程准备—对课程的初步认识
    项目内容班级博客链接2023年春软件工程(2020级计算机科学与技术本次作业要求链接实验一软件工程准备我的课程学习目标1.学习博客园软件开发者学习社区使用技巧和经验2.了解Github的基本操作本次作业在哪些方面帮我实现学习目标学习了博客园使用技巧,Github的......
  • Arduino 外接 DS3132 读数为2165/165/165问题解决
    即使SCL/SDA不接线,DS3132也会返回,这个值为2165/165/165因此问题的来源为接线不牢靠。接线牢靠的标准:RTC模块(ZS-042)上的PWR灯应该常亮,并且亮度很大(我一开始接线,PWR亮度小,而且闪烁)RTC的SCL接Arduino的A4,SDA接Arduino的A5.The165indicatesthatthedatalinefor......
  • RocketMQ-Windows安装-客户端rocketmq-dashboard 20230331
     一、Windows安装 https://github.com/apache/rocketmq/releases 1、解压rocketmq-all-4.8.0-bin-release.zip到D:\XXXA\rocketmq-all-4.8.0 2、RocketMQ配置环境变量:ROCKETMQ_HOMED:\XXXA\rocketmq-all-4.8.0NAMESRV_ADDRlocalhost:9876 PATH属性增加:......
  • 闲话? 23.3.31
    很可能啥都没有别点别看杂题?CF1792F给出一个\(n\)个顶点的无向完全图,你需要给图上的每条边染上红色或蓝色。一个顶点的集合\(S\)被称作是红色连接的,如果对于\(S\)中每对顶点\((v_1,v_2)\),都存在只通过红边和\(S\)中顶点的路径。相仿地,一个顶点的集合\(S\)被称作......
  • COMP5310 分析数据
    COMP5310ProjectStage2ASummariseandAnalysetheDataDue:11:59pmon6thofApril2023(Week7)Value:10%oftheunitThisstageisusuallydonewiththesamegroupmembersasyouworkedwithforStage1.However,ifsomeoneiscurrentlyinagroupthat......
  • 2023-03-21-将指针所在地址传入函数来创建链表的一种写法
    如下,通过将指针所在的地址传入函数中即**p的形式,来保证直接对地址进行运算,而不需要再返回一个链表//双链表#include<stdio.h>#include<stdbool.h>#include<malloc.h>typedefstructDNode{intdata;structDNode*prior,*next;//prior指向上一个结点,next指......