第一次博客作业

一、快速看完整部教材,列出你仍然不懂的5到10个问题,发布在你的个人博客上。


1)我在《构建之法》中看到这段文字:“结对编程让两人所写的代码不断处于复审的状态,可以提高设计、编码的质量,可以及时地解决问题。”对于这段话,我还是有疑问。到目前为止,我的编程作业都是一个人独立完成,遇到困难时,也只是和同学口头讨论。从过去讨论的情况上来看,每个人编码风格不同,思路多多少少都有差异,一个人要去理解另一个人的代码是需要时间的。另一方面,如果结对双方有实力差距,那实力弱的一方不管担任“领航员”还是“驾驶员”都不会对工作效率有太大帮助。所以我觉得,结对编程队友是否应该是一个你熟悉他的代码风格,而且两人水平相近的情况下才能提高效率。
2)我在《构建之法》的16章时。书中讲到。创新不必要灵光一现,不必要好的想法,不必要一马当先,不必要领域专家,不必要技术创新,不必要成功的团队,那创新到底必须具备什么?
3)在《构建之法》中有这样的一段话:

这几条是作者对作坊的总结,以此来类比中国的软件企业,但是我无法把这些特点与软件企业联系起来。
4)在《构建之法》中有这样的一段话:

文中提到极限编程,但是在本书中我没有找到关于极限编程的详细内容。在我的理解中,没有参与到程序编写的人,要全面地找出程序中的bug是很困难的。所以我比较好奇什么情况可以让别人来编写单元测试。
5)第5章软件团队的模式,我感觉主治医师模式、明星模式、交响乐团模式都是差不多的,无法分清其中的差别。

二、请问 “软件” 和 “软件工程” 这些词汇是如何出现的?

“Software”:这个单词最早出现在出版物中是由Richard R. Carhart 于1953年8月出版的书籍。1995,Paul Niquette声称他在1953年十月最初创造了这个词,虽然他没能找到任何资料支持他的说法。
“Software Engineering”:是由 Margaret Hamilton 发明的, Hamilton是一个自学程序设计,并且当上 MIT 软件工程测试实验室主任(也就是为美国太空总署 NASA 开发电脑系统的单位)的女性。她在阿波罗计划期间发明了“Software Engineering”一词。

三、大家知道了软件和软件工程的起源,请问软件工程发展的过程中有什么你觉得有趣的冷知识和故事?

在程序中bug一词用于技术错误,这一术语最初由爱迪生在1878年提出的,但当时并没有流行起来。几年之后,美国上将葛丽丝·穆雷·霍普(Grace Murray Hopper)在她的日志本中,写下了她在Mark II电脑上发现的一项bug。不过实际上,她说的真的是“虫子”问题,因为一只蛾子被困在电脑的继电器中,导致电脑的操作无法正常运行。她将这只蛾子保存在自己的日记本中,并写道“这是我在电脑上发现的第一个bug”。(从未写过bug的程序员可太强辽orz)

4)上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?

1)Git
     优点:适合分布式开发,强调个体。公共服务器压力和数据量都不会太大。速度快、灵活。任意两个开发者之间可以很容易的解决冲突。离线工作。
     缺点:学习周期相对而言比较长。不符合常规思维。代码保密性差。
2)Mercurial
     优点:有revset,扩展性,append only的存储结构,易于掌握。
     缺点:功能比Git弱,分支管理不灵活。
4)Trac
     优点:非常灵活,可以随心所欲控制可以和SVN集成
缺点:功能不是很强大。
5.Bugzilla
     优点:定制功能强,能满足更多用户差异化的需求。
     缺点:界面不友好。

posted on 2020-03-03 15:43  xtl233  阅读(191)  评论(1编辑  收藏  举报

导航