第二周读书笔记

本周我读的书是Frederick P.Brooks所著的《人月神话》这一十分著名的书籍。这是一本非常典型的外国科技作品:富含了幽默感和形象生动的比喻:“焦油坑”、“人月神话”、“外科手术队伍”,看到这些词,你会很快在脑海中建立起一个很清晰的画面,同时也会产生很多疑问:这个东西,这幅画面的特点是什么?为什么要提起它?作者又想让我关注什么?而当我们仔细阅读其中的内容,很快就会发现,怀揣着这些问题的我们,可以迅速的感知到作者想要表达的重点是什么,同时还建立起了对这个概念的一个联想画面,这不仅有助于我们去理解,去体悟,更能令我们的阅读妙趣横生,我想,这样一本书,他的名声在外,绝不是靠弄虚作假作出来的。

被作者绘声绘色的描述方式所吸引,我一下子就读了好几章,能被称为“一本在软件领域绝无仅有,20余年畅销不衰的必读经典”,不得不说人月神话的吸引力是巨大的。

第一章一开始,作者十分风趣的将软件开发的过程比喻为焦油坑,让陷入其中的猛兽越是挣扎,越是难以挣脱束缚,最终陷入坑底,而在软件开发的过程中,软件开发团队就像是猛兽,在由各种问题交织在一起的开发过程面前,就好像是在焦油坑里打滚的猛兽,如果只用蛮力,那是不可能成功的。软件开发的困难,更是让无数的企业和团队淹没在了焦油坑中。紧接着,作者带我们领略了软件开发这个职业的乐趣和苦恼。作者将软件开发类比为了艺术家创作一项作品,力量蕴含在创造的过程中,很多时候是痛苦的,但却是富含深意和力量的。在产品被创造出来以后,那样的快乐是比之前的痛苦更具震撼力的。

在第二章,作者仔细的讲述了人月的关系,也让我恍然大悟何谓人月神话。人月,是指在估计和进度安排中使用的工作量单位。看似包含了软件开发过程中的最重要的因素,可是实际上“成本的确随开发产品的人数和时间的不同,有着很大的变化,进度却不是如此。因此我认为用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。”换句话来说,就是完成工作的人数与时间使不能进行简单互换的。要理解这一点也很简单,毕竟不是每个人都是老鸟,毕竟不是每个人都是工作狂(误)。更进一步地来说,在人数过多的情况下,很可能会出现中国的传统谚语中所描述的那种“三个和尚没水喝”的情况(互相甩锅,推卸责任)。结合我参与过的robgame的编程经历想一想,的确如此,在有好几人分块进行编程时,最大的麻烦就是组合成一个完整的项目联合调试的时候。编写程序可能只用一天的时间,而代码的整合与测试往往需要好几天。各个部分分别测试都没有问题,但是联合起来,总会由于接口、变量名等因素的冲突产生BUG。只有团队之间的通力合作,才是加快进度的可能方法,书中说“软件系统也是人类创造的错综复杂的事物。所以只有在一个团队的沟通了解,通力协作和努力之下,才能做出更加完善的软件作品!”

原文地址:https://www.cnblogs.com/ZucksLiu/p/8640569.html

时间: 2024-10-17 18:25:12

第二周读书笔记的相关文章

第二周读书笔记《构建之法》

构建之法读书笔记 #wmd-preview h1 { color: #0077bb } 构建之法读书笔记 沈三景 PB15061249 软件工程 读书笔记 前言 本周阅读了构建之法的四.五两个个章节.这三个章节主要讲述了代码规范.结对编程.团队模式.开发流程. 第四章 两人合作 首先提到的是代码规范,程序员写的代码不仅要给机器看,还要给人看.好的代码规范能事半功倍.代码规范有分为代码风格规范和代码设计规范.代码风格规范是指让代码保持简明,让代码更易读.书中给出的规范是Tab键为4个空格,行宽为1

Android深度探索——第二章读书笔记及心得

Android开发环境搭建 ——第二章读书笔记及心得 通过本章的学习了解了如何对Ubuntu Linux下的Android进行搭建,包括搭建Android应用程序开发环境.Android NDK开发环境和交叉编译环境的搭建.了解了搭建Android环境所需要的各种东西,了解了配置ADT的必要性—以便ADT能够找到Android SDK.知道了底层开发所需要的各种工具.学会了如何在Ubuntu下安装JDK.以及编译交叉编译环境,当初在学习Linux交叉环境编译的时候就不是特别成功,中间出了很多的错

第一周读书笔记《构建之法》

构建之法读书笔记 #wmd-preview h1 { color: #0077bb } 构建之法读书笔记 沈三景 PB15061249 软件工程 读书笔记 前言 开学前两周,杂事颇多,没有充足的时间阅读<构建之法>,只能每天在睡前阅读约半小时,故只看了前三章.虽如此,但仍收获很多,下面就是我对前四章内容的一些看法和理解,如有理解偏颇之处,望见谅. 第一章 概论 本章主要介绍了软件工程是什么?软件工程的目标是什么?为了解决前一个问题,作者首先提出了两个等式: 程序 = 数据结构 + 算法 软件

linux第二次读书笔记

<Linux内核设计与实现>读书笔记 第五章 系统调用 第五章系统调用 系统调用是用户进程与内核进行交互的接口.为了保护系统稳定可靠,避免应用程序恣意忘形. 5.1与内核通信 系统调用在用户空间进程和硬件设备间添加了一个中间层, 作用:为用户空间提供了一种硬件的抽象接口:保证了系统的稳定和安全,避免应用程序不正确使用硬件,窃取其他进程的资源,或做出危害系统的行为:为了实现多任务和虚拟内存. Linux提供的系统调用比大部分操作系统少得多. 5.2 API.POSIX.和C库 一个API定义了一

第三周读书笔记

<程序员的职业修养>读书笔记 本书一直围绕着"专业"二字展开,以作者的观点阐述了何为"专业的程序员":专业的程序员是如何思考,如何解决问题,如何承担责任. 所有软件项目的知道原则是,软件要易于修改.如果你希望自己的软件灵活可变,那就应该市场修改它!要证明软件易于修改,唯一的办法就是做些实际的修改.如果你发现这些改动并不像你预想的那样简单,你就应该改进设计,使后续修改改变简单.有时开发期已过进入测试阶段,可能还会加一点需求,如果是影响到逻辑上的改动会比较麻

第六周读书笔记《极客与团队》

<极客与团队>读书笔记 做程序员这个职业,就意味着与别人在工作上会有不少沟通与交流,处于一个团队中,如何能更好地编写代码,在团队中如鱼得水,过得更加开心,<极客与团队>这本书就给了我一些启迪. 这本书其实针对的是极客们,希望他们能够认识到团队的重要性.书中提到程序员要建立可以理解的代码,要注意与人的沟通,而不是只顾着自己.这一点我深表赞同.邓老师也在一直强调,写的代码要注意注释,要跟别人进行交流,注意书写格式以使得代码阅读性更强.这是因为个人的工作只是团队工作的一部分,要想整个团队

第五周读书笔记

<c++应用程序性能优化>读书笔记(part3) 应用程序的启动性能是应用程序给最终用户的第一印象,是衡量一个程序易用性的重要指标.书的第三部分介绍了启动性能优化的一些方法,第七章介绍了应用程序的物理布局,第八章介绍了应用程序在windows和linux平台上的编译到启动的过程,第九章介绍了优化启动项的一些方法. 本章从动态链接库开始讲起,简单的介绍了一下DLL.这里其实我看的有点晕的,大概就是说DLL可以看成一个一个函数的集合,我们可以编写代码来调用.然后讲了一些类似微机原理课本上的知识,我

第九周读书笔记

软件工程师的成长-构建之法 这两周算是比较忙了,抽空读了一下<构建之法>中的软件工程师的成长这章,颇有感悟. 团队项目也是以个人为单位的,所以软件工程师的能力直接影响到团队项目的质量.这是我以前没有意识到的,以前我只是想团队项目嘛,不就人多力量大,但是作者说团队项目也是由个人流程拼接起来的,这给我提了个醒,团队项目不是大锅饭,而是一条条流水线,每位工程师就像是一条流水线,只有每条流水线正常工作,衔接得很好,最后的项目才能做得好. 既然软件工程师的能力很重要,接下来作者自然讲述了软件工程师如何成

第五六周读书笔记

一.几种低压接地系统: 1.TN系统: TN系统即电源中性点直接接地.设备外露可导电部分与电源中性点直接电气连接的系统. TN系统主要是靠单相碰壳故障变成单相短路故障(短路电流是 TT 系统的 5.3 倍),并通过短路保护切断电源来实施电击防护的.从电击防护的角度来说,单相短路电流大或过电流保护器动作电流值小,对电击防护都是有利的. TN 系统节省材料.工时,在我国和其他许多国家广泛得到应用. TN 方式供电系统中,根据其保护零线是否与工作零线分开而划分为TN-S系统.TN-C系统.TN-C-S