首页 > 其他分享 >人月神话读后感03

人月神话读后感03

时间:2023-04-23 20:35:14浏览次数:45  
标签:读后感 需要 神话 03 代码 程序 文档

以下仅为我对一些章节的感受
第11章:未雨绸缪

为舍弃而计划,无论如何,你一定要这么做

唯一不变的就是变化本身

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

工具很重要,需要专门人员开发

“仿真装置”很重要

不确定性是所有情况中最糟的,因为它剥夺了程序员寻找BUG的能力
第13章:整体部分

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

自上而下的设计。
第14章:祸起萧墙

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

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

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

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

    减少角色冲突和鼓励状态共享。老板决不在检查状态的时候做安排。
    猛地掀开地毯。建立能了解状态真相的评审机制。

第15章:另外一面

这一章强调了“文档”的重要性。即使是完全开发给自己的程序,仍然是必要的,因为记忆会衰退。

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

    使用程序。不需要了解程序的代码。
    依赖程序。需要调用程序,因此需要知道程序代码的外部接口
    修改程序。需要完全知道程序中代码的内部结构。

“流程图”被过分吹捧了。

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

所有的软件活动包括:

    根本任务:即打造构成抽象软件实体的复杂概念结构。
    次要任务:即使用编程语言表达这些抽象实体,在空间和时间限制下将它们映射成机器语言。

目前取得的进步基本上都是“次要任务”上的,但是“根本任务”上的困难一直存在,并且可以预见在短时间内无法取得数量级上的进步。

困难的特性:

    复杂度
    一致性
    可变性
    不可见性
————————————————
版权声明:本文为CSDN博主「YakSue」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013412391/article/details/108338553

标签:读后感,需要,神话,03,代码,程序,文档
From: https://www.cnblogs.com/kun1790051360/p/17347642.html

相关文章

  • 003.其它组
    其它组除文件的所有者和所在组的用户外,系统的其他用户都是文件的其它组 改变用户所在组在添加用户时,可以指定将该用户添加到哪个组中,同样的使用root的管理权限可以改变某个用户所在的组。语法usermod-g新组名用户名usermod-d目录名用户名改变该用户登录的初始目录......
  • TypeError: Cannot read property 'upgrade' of undefined
    解决方案:在你的.env.dev配置文件中配置VUE_APP_BASE_API并对target赋值 ......
  • C# Mysql The given key '12599' was not present in the dictionary.
    如果查询语句没有问题数据库连接字符串也没有问题,可能是Mysql.Data引用与当前安装的Mysql数据库版本不兼容的问题。我本地安装的mysql版本是8.30,在VS里使用Nuget程序包下载的Mysql.Data引用是其他更低的版本,将程序里用的Mysql.Data也更新到8.30就好了。版本保持一致。 ......
  • show table status like 'table'\G 详细信息介绍
    mysql>showtablestatuslike'leyangjun'\G***************************1.row*************************** Name:leyangjun          表名字        Engine:MyISAM                表存储引擎 Version:10      ......
  • 常用代码-03
    选中表格当前行:代码:$("body").on("click","table>tr>td:nth-child(4)",function(){letcurrentRow=$(this).closest("tr");letcurrentRowtd01=currentRow.find("td:eq(0)").text();letcur......
  • 「解题报告」CF708E Student's Camp
    感觉这篇题解的做法很强啊,贺一下。连通:考虑将每一种情况对应一条路径。钦定这条路径为能往下则往下,不能往下就向左或向右走到第一个能往下的位置然后往下。这样只考虑每一种路径,再对应的计算路径相应的情况的概率和。这个是容易计算的,而路径需要记录的状态少了一维,于是就可以......
  • STM32F103的默认测试端口(JTAG\SW)用作普通IO口的配置
    STM32F103的默认测试端口(JTAG\SW)介绍STM32F103的PB3、PB4、PA13、PA14、PA15在默认上电状态并不是具有普通 IO 的功能的。而是用作SWJ-DP端口(用于JTAG调试)  这些引脚只有重定义功能后才能作为普通的IO口使用,所以我们需要对这些引脚进行配置的时候开启AFIO复用时钟。下......
  • ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run
      今天执行mysql操作的时候出现了错误:ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/var/run/mysqld/mysqld.sock'问题1:首先检查是否安装了mysql-server了 sudoapt-getinstallmysql-servertoinstallmysqlonubuntu  sudoapt-getin......
  • Unable to tunnel through proxy. Proxy returns "HTTP/1.1 503 Service Unavailable
    背景:某日,一正常项目迁移到新的服务器新的服务器,需要使用代理来访问之前能直接访问的接口,加完代理之后,发现无法获取数据了报错:org.springframework.web.client.ResourceAccessException:I/OerroronGETrequestfor"https://xxxxxxxxxx/xxxx":Unabletotunne......
  • 03 | 写一个能产生斐波那契数列的range——惰性求值
    1.首先为了满足range概念的要求我们需要提供begin()和end()2.begin()和end()返回的应该是迭代器,注意这个地方两种可以返回两种不同类型(c++17后即可)3.为了满足迭代器概念的要求我们提供5个typedef,并根据std::input_iterator_tag类型决定我们要实现的“解引用函数”,......