Java课程寒假之《人月神话》有感之一
一.焦油坑
以前上课的时候,老师讲过早期的程序由于工作量不大,大多只需要几个人完成,随着软件规模的不断扩大,代码量直线上升,仅仅一两个人可能没有办法完成这样的任务,多以开始形成了团队的规模,焦油坑说的是在完成代码的路上,许多程序工程师为此前赴后继,不断努力去解决工程上的问题,作者开始谈到了程序工程师职业的乐趣与苦恼。
说老实话,作者所说的乐趣和我当时大一的时候想的一样,作为一名程序员,我可以用手中的电脑,通过自己打出的代码,实现各种各样的功能,当时真的是简直是帅呆了,再加上影视剧中对于黑客的描述,让我对于编程有着很高的向往,“程序员凭空地运用自己的想象,来建造自己的“城堡””,运用这些编程技巧,来实现各式各样的功能。与画家不同,画家是将自己的想象描述出来,而程序员则是realize IT。
当然,后来也想书中说的一样,当我们要去实现它的时候,去要让程序达到我们所要希望的程度时,我们要付出的代价也是十分大的。当我信心满满的准备开始运行代码时,大多数情况下我遇到的是不少的warning和error。然后便开始了艰难的找bug之旅,一个接着一个。就像书中所说的:这,就是编程。一个许多人痛苦挣扎的焦油坑以及一种乐趣和苦恼共存的创造性活动。
对,恭喜我进入了这个焦油坑,也希望我能跨过这个焦油坑。
二.人月神话
对于任何一个工程,我们都需要合理地规划时间的安排,之所以我们对于进度安排的不够合理,正如书中所说:它反映了一种悄无声息,但并不真实的假设——一切都将运作良好。
我们对于实际情况无法预知,我们天真的以为一起玩运转良好,同时我们还会遇到其他各式各样的问题,由于我只有大二,对于大规模的软件并没有一个深刻的理解,所以也不敢瞎说,只能引用书中的事例:错误地将工作量与进度互相混淆,缺少对进度的跟踪和监督,当意识到进度发生偏移的时候下意识的反应是增加人手。
人月,的确不能像数学中的反函数一样,人员数量和时间是不可以相互替换的,每个人的工作不是完全无关的,之间需要不停的沟通协调,当人员数量急剧增加的时候,我们沟通的成本也在增加,导致时间的成本也在同时增加。这的确是一个无法实现的神话。
在很多时候,我们做的事并不是在编码,而是在不停的调试,真正编码的时间的确是很少的,和系统测试比起来的确可能是系统测试的时间要更长一点,我们不知道使用对象在操作的时候回发生什么,充分的时间必须要留给系统测试,否则当问题产生在交付之后就会非常麻烦。
Java课程寒假之《人月神话》有感之一的更多相关文章
- Java课程寒假之回答问题:如何将你的兴趣化为可以立足于社会的资本
在学校的时候干过几次兼职,算是无聊时候的外快吧,有一次是去辅导机构,在考试期间监考学生,前后大概四个小时,最后拿了四十五并且管了一顿饭,不得不说,小学生是真的皮,考试的时候有的爱讲话,有的是写完之后开 ...
- <<人月神话>>阅读体会(一)
第一次听说人月神话还是在大一上学期的导论课那会儿,那会儿好像就已经确定了自己要学软件,于是就去问王建民老师能不能给我推荐几本软件工程方面的书,我想要提前自己学学,以为老师会给我推荐一些某种语言类的学习 ...
- 软件项目发展历史<人月神话>这本书好
几乎是计算机软件开发的发展历史 人月神话,增加人手并不一定能提高开发速度. 原因在于,有些任务是无法分解的,存在先后顺序.无法同步进行. 增加人手,增加的是沟通成本,相互牵制.可以分解的任务就 ...
- IT项目管理——《人月神话》读后感
这也许是和候红老师的最后的几节课了吧,侯老师是一个很有思想深度,很关心同学的好老师. 一开学就布置了阅读<人月神话>的作业,说实话,我没有看,以我的速度可能2.3个小时就看完了,但是我觉得 ...
- 《The Mythical Man-Month(人月神话)》读后感(2)
第10章 未雨绸缪 在化学领域中,在实验室可以进行的反应过程,并不能在工厂中一步实现.一个被称为“ 实验性工厂(pilot planet)”的中间步骤是非常必要的,它会为提高产量和在缺乏保护的环境下运 ...
- 《The Mythical Man-Month(人月神话)》读后感(1)
临近考试周,这里我通过平时阅读的<人月神话>十九个章节和知乎.简书等网页中网友们对<人月神话>的读后感,对书中各个章节进行简单的总结,以下均为个人手打观点的思考与整合,仅供大家 ...
- 第八周读书笔记(人月神话X月亮与六便士)——到底什么才是一个程序员的自我修养?
写了这么久的读书笔记,涉及到问题大多是一些如何把软件工程做好,如何把自己的职业生涯做好.但总感觉逻辑链上缺了一环,亦即:我们为什么要把软件工程做好,我们成为一名优秀的职业生涯的意义到底在于什么?我觉得 ...
- 读书笔记第三周 人月神话 刘鼎乾 PB16070837
读书笔记第三周:人月神话 这本书主要讲述了如何管理一个软件开发团队的问题,其中如何提高团队的效率可以说是本书的重点之一了.感觉这本书地中文版翻译得比较晦涩,很多表达比较模糊,看起来有些吃力,因此下 ...
- 《人月神话》读书笔记 PB16110698 第七周(~4.19)
每逢读书笔记上交作业时刻,班级blog页面上总能看到<人月神话>相关的读书笔记,本次软工课邓老师推荐的第一篇读书笔记也是写的<人月神话>,算是对它“耳濡目染”了.本周,我终于抽 ...
随机推荐
- [原创]浅谈移动互联网App兼容性测试
[原创]浅谈移动互联网App兼容性测试 今天要谈的话题,估计各位测试都有感受,移动互联网App兼容性测试,我们到底测试覆盖如何去挑选机型?具体移动App兼容性测试如何开展?是不是应引进像testin这 ...
- 开启win10下Ubuntu子系统的SSH服务 并设置为开机启动
Win10中安装Ubuntu子系统后默认是没有开启SSH服务的,需要手动配置开启, 1.先通过 bash 进入子系统修改配置 vi /etc/ssh/sshd_config 备注 输入i 表示键入, ...
- 转: 关于linux用户时间与系统时间的说明
写的很不错的一篇. https://blog.csdn.net/mmshixing/article/details/51307853
- 【T09】要认识到TCP是一个可靠的,但不是绝对可靠的协议
1.稍微想一下就知道,TCP不是绝对可靠的协议,比如:网络断开,主机崩溃,无论TCP如何努力,都无法将数据传给对方. 2.考虑应用程序A向应用程序B发送数据的TCP流程,数据流从应用程序A通过他所在主 ...
- jvm实战-jvm调优
jvm调优 jvm调优主要是内存管理方面的调优,包括各个代的大小,GC策略等. 代大小调优 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内 ...
- ionic1页面切换动画卡顿优化
https://github.com/shprink/ionic-native-transitions https://www.npmjs.com/package/ionic-native-trans ...
- 洛谷 P1739 表达式括号匹配
题目链接https://www.luogu.org/problemnew/show/P1739 题目描述 假设一个表达式有英文字母(小写).运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为 ...
- 生产系统ELK日志采集系统
总结下,生产在运转的日志采集系统!后续的扩展在于elasticsearch节点与logstash节点与kafka+zookeeper,目的提高吞吐量!
- 最完整苹果IOS个人开发账号升级方法-个人开发账号升级为公司开发者账号常见误区
1:背景交代 大概晚上10点钟之后在知乎上看到很多人聊审核被拒PLA1.2,主要电商和金融类APP被拒很多.主要原因是 1:发布的APP与改账号关联度很低.(说白苹果怀疑你是山寨APP,不是优质的AP ...
- (原)DropBlock A regularization method for convolutional networks
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9985027.html 论文网址: https://arxiv.org/abs/1810.12890 ...