个人博客作业

一. 问题

1.第一章 概论

“如果一架民用飞机上有需求,用户使用它的概率是百万分之一,你还要做这个功能么?”

我觉得软件的异常处理和飞机的安全功能是类似的,虽然用户使用它的概率很小,但是却十分重要,如果软件出现异常却没有异常处理功能,导致的后果可能是很严重的,这与普通的功能不太一样。所以我认为软件的功能应该有一个分类,比如基本功能,异常处理功能,辅助功能等等。

2.第四章 代码风格规范

“代码风格的原则是:简明,易读,无二义性。”

简明,易读,无二义性的确是很重要的,但是否有必要为此制定严格的规范,并让程序员严格地遵守呢?

3.第四章 结对编程

“他们并排坐在一台电脑前,面对同一个显示器,使用同一个键盘,同一个鼠标一起工作。他们一起分析,一起设计,一起写测试样例,一起编码,一起做单元测试,一起做集成测试,一起写文档。”

我没有结对编程的经验,但是感觉上,结对编程的两个人想要达到书中描述的这种状态,应该非常不容易。因为每个人思维方式,编程风格都多多少少会有些不同,两个人对同一个功能可能会有不同实现想法,这时候到底该采用谁的想法,可能会成为两个人讨论的问题,这样的话会不会降低效率呢?

4.第七章 MSF

“团队中的每个角色都有自己的职责,如果出了问题,这个角色就要负责任”

感觉软件出现bug,有时候并不是一个人的问题,有可能是团队整体的配合和协作出现了问题,导致各个模块同时工作时出现问题,这时候的责任的划分就成了一个问题。

5.第九章 项目经理

“如果一定要说专业能力的话,PM的专业就是理解和表达,你是否理解不同人的心理,需求和言外之意?“

PM的专业就是理解和表达,我认为只有PM自己写过代码,实践过,才能真正理解开发者的心理和工作。

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

  • “软件”一词最早出现在1953年8月,Richard R. Carhart发表的一份兰德公司的研究备忘录中。
  • 在早期的阿波罗登月计划中,NASA的Margaret Hamilton开始使用“软件工程”这个术语。

三. 软件工程发展的过程中有趣的冷知识和故事?

  • 第一款数字化电脑游戏从未带来任何利润回报

    现在的视频游戏已经成为了最受瞩目的程序开发成果,然而历史上第一款数字计算机游戏则遭遇巨大失败。第一个电脑游戏出现于1962年,由麻省理工学院的计算机程序员Steve Russell与其团队一同编写,这款名为《太空大战》的游戏耗费了他们近200个小时。该游戏允许两名玩家分别控制两艘飞船,目标是击中并摧毁对方飞船,并且玩家还需要躲避屏幕中代表星球的小白点。如果玩家撞上这些星球,则游戏失败。虽然Russell和他的团队从未在这个游戏说的任何收益,但必须承认如果没有这一突破我们可能永远不会拥有如今蓬勃发展的视频游戏产业。

四. 目前流行的源程序版本管理软件和项目管理软件及其优缺点

流行软件:

  1. github:约31,000,000用户量
  2. SourceForge:约3,700,000用户量
  3. Bitbucket:约5,000,000用户量
  4. GitLab:约100,000用户量

优缺点:

GitHub

  • 优点:GitHub提供Git存储库服务,基于web,允许你使用Git的源代码管理功能及其特性。
  • 缺点:可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟可以选择LayerVault 或其他相似工具。非常适用代码跟踪,但也相应的保密性较差。

Mercurial

  • 优点:有reset,扩展性,append only的存储结构 ,上手简单。
  • 缺点:分支管理不灵活。Mercurial的branch管理和Git相比不是很方便。没有命名空间。大型团队不愿使用。

Trac

  • 优点:良好的扩充性,非常灵活,可以随心所欲的定制,可以和TortoiseSVN集成。
  • 缺点:不支持多项目。需求和缺陷没有分离。核心功能少,不安装插件基本上没法用。

Bugzilla

  • 优点:免费且有中文。检索功能强大,有强大的后端数据库支持。
  • 缺点:安装需要Perl和配置MySQL数据库,比较繁琐。修改配置文件也很麻烦。流程无法定制。

调查使用:

1.git

使用git branch查看当前分支,使用git log查看commit记录。
2.github

使用github托管项目

posted @ 2020-03-04 13:46  17373263  阅读(268)  评论(2编辑  收藏  举报