个人作业博客——阅读《移山之道》想到的五个问题By Zhe Song

《移山之道》这本书是我们这个学期软件工程课程的课本,非常荣幸的是这本书的作者就是我们课程的授课老师。

读书就要思考,不然也就失去了读书的意义。

在这里和大家分享五个问题,算是抛砖引玉,其中有的已经初步解决了,有的待解决的欢迎大家讨论。


1、Bug的来历

程序中出现的问题为什么叫bug呢?

记得还在小学的时候,一个知识渊博的同学非常得瑟的和我们说,程序了的错误叫bug。后来就记住了,可是从来都没有去深究这里面到底有什么渊源?赋予了这个单词这么有科技感的含义。

原来,最早的计算机是由真空管设备组成的,并用很多电,而且计算机运行时发光发热。难免引得一些小虫钻进真空管。引起机器发生故障,技术人员耗费了半天终于查出原来是这只小虫(bug)引发了问题。移除小虫后,机器恢复正常。从此,Bug一词被沿用下来,用来表示程序或电脑系统中隐藏的错误、缺陷、漏洞等。


2、敏捷开发的到底是什么?

说实在的,敏捷开发那段把我看得一头雾水,关键是他怎么就敏捷了没有掌握清楚精髓。很需要把这个问题弄弄清楚。我想通过下面的总结我认识的更清楚了。

敏捷开发,追求的是开发速度,也就是快速开发。简单地说就是只跟随客户当前提出的需求,而不去挖掘或揣摩那些潜在的功能扩展,当客户再提出新的需求或变更时再继续开发。表面上看这么做很轻率,效率肯定也不会高,事实上这么干实际上对开发和设计人员有更高的要求。

成功的敏捷开发建立在高内聚低耦合的基础上,工作表面上看起来是不考虑以后的扩展性能,但实际上真正的敏捷开发必须做到:当客户新的需求提出来,我们能很快做出响应,拿出对策。这就意味着,我们不但要对项目的整体业务有比较深刻的认识,还要有高内聚低耦合的编码功力。

只有这样,敏捷开发才是真事,而不是彼此忽悠。

以上这个问题我会提出我想主要原因是,我们的项目经验还很少。如果有了丰富的经验,那么学起软件工程的很多成果来一定会产生内心的共鸣,从而更加容易懂并且提升日常的工作。当然,我们现在早早知道并没有坏处。也许今后的某一天重新复习软件工程的经典段落,又是一番滋味呢。


3、整个书像是在讲故事,是用一群任务和他们所做的事串起来的,这种形式的课本到底好不好呢?

1)我的感觉呢是,开始看起来非常有意思,王屋村的村民们踌躇满志、大干一场、人才济济,看的饶有兴致。后来各种不熟悉的专业名词一来,稍微枯燥,有点小晕。新事物第一遍总是这样,尤其对于中人之资的初学者。

2)相比较于传统的照本宣科的讲法,无疑这种叙事方法更加生动,趣味性随之增加。

3)并不是每个人都对此很满意,也有读者表示“作者试图写的很有意思,可惜最后不伦不类。”

一千个读者眼中有一千个哈姆雷特。至少这本书是软件工程书中的一种创新,是非常值得肯定的。


4、双人合作到底有无必要?难道不是人力浪费吗?

一件工作本来一个人可以完成,为什么要分给两个人呢?这难道不是一种人力的浪费呢?其实只要想想结对编程带来的好处,便能得出结论,这种工作模式也有很有存在的价值的。

按照我的体会,具体的说。

1)结对编程能够提供更好的设计质量和代码质量,两个人合作能够够有更强的解决问题能力。

2)结对编程给我们带来了更多的信心,你不是一个人在战斗。

3)结对编程能够更有效地交流,相互学习和传递经验。

相应的挑战和付出的代价,当然是随之而来的交流沟通成本,不过我认为还是非常值得的。


5.TFS系统的用户状况到底怎么样?

课程项目开发时我们使用了TFS系统来管理项目,我们发现它也又一些不足,比如

1)连接速度慢,经常卡掉了要反应很久,比较影响工作效率。

2)VS系统本身是一个很臃肿的系统,我的很多同学都为此抱怨。

3)TFS关联了许多MS Office的产品,也对其产生了依赖。

4)各种需要填写的表格、信息管理系统、权限管理系统稍显复杂,用户是否易用。

我们的软件工程项目被绑定限制在了必须在TFS上完成,如果没有这一要求是否同学们还会坚持在这个平台式操作。实际软件产业中,依赖TFS进行项目开发的除了微软的研发部门,其他企业的采用率是否足够高?


——Zhe Song @USTC

转载于:https://www.cnblogs.com/rosting/archive/2011/10/08/2203119.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值