软件工程第一次阅读做业

1、提问

1.第二章 好的单元测试的标准

单元测试必须由最熟悉代码的人(程序的做者)来写。git

  虽然理论上来说没有人会比做者更了解本身的代码,但正因如此,做者每每只能查验那些他在编写过程当中就已经考虑到的问题,没法发现本身没有考虑到的问题。在实际工程中,测试和代码编写每每是两个不一样的部门来负责,所以我认为结对互相编写单元测试可能会更好(前提是知道对方的需求)。github

2.第四章 代码设计规范

函数最好有单一的出口,为了达到这一目的,可使用goto。只要有助于程序逻辑的清晰体现,什么方法均可以使用,包括goto数据库

  goto函数真的有必要使用吗?由于不少时候为了简便,并不想设定惟一出口,以往的编程中没有这个习惯。编程

3.第四章 代码复审

  代码复审和单元测试的区别在哪?后端

4.第三章 软件工程师的发展

  身边的不少同窗都有考计算机二级,然而我问了一下同系的同窗,基本上没有人去考过级,这种考级对于咱们真的有必要吗?它并不像导游证之于导游专业,会计证之于会计专业那样不可或缺吧。网络

5.第九章 领导力——高效的团队讨论

  在上学期的一些课程中,我所在的团队常常召开会议,可是每每是无功而返,最终什么都没有改变(就像老师提到的“过后诸葛亮会议”)。在这学期的软件工程课程中,长达十五周的团队项目确定须要开不少会议,尽管书中已经给过一些建议,可是咱们当中并无一个相似PM的人,该如何避免重蹈覆辙呢?app

6.第十二章 用户体验

  现在软件的用户体验,除了流畅和功能强大以外,用户每每但愿广告可以尽量的少,但在软件开发者的角度考虑,广告投放彷佛是必要的。虽然在咱们的课程中没必要考虑这个问题,但在实际运用中如何投放不会让人反感的广告呢?分布式

7.第十六章 IT行业的创新

不但大众不喜欢创新,甚至连创新者本身都不例外,有些创新者甚至恨创新。函数

  在这一部分中,老师提到了电报和电话的矛盾。实际生活中,雅虎和阿里巴巴彷佛更让人熟悉。同是互联网大头,一个捷足先登却不思进取,另外一个追求创新后来者居上。在互联网时代,拒绝创新彷佛是致命的,可是在咱们的学习过程当中,咱们不断地去了解基本概念,不断的去学习那些旧知识。学校彷佛没有考虑为咱们灌输新兴思想(AI算是当下正火的),这是为何呢?单元测试

2、“软件”和“软件工程”概念的提出

  “软件”的概念最先由阿兰图灵在1935年提出,但也有人认为软件正式出如今1958年John Turkey的论文中。

  “软件工程”的概念最先由Margaret Hamilton在1968年联邦德国召开的会议上提出。

3、趣事

一、

《美丽心灵》上映后,有记者采访纳什:电影拍得真实吗?恐怕艺术加工的成分很大吧。纳什:你说得对,其实查尔斯没那么高。

  ——查尔斯是约翰纳什臆想中存在的室友。

二、

  著名计算机科学家Donald Knuth(高德纳)写的排版软件TeX版本号能够算是个趣事,从TeX第三版开始,以后的升级是在小数点后加入一个新数位,使之愈来愈接近Pi的值。TeX目前的版本是3.1415926。
  
  以上趣事均来自于知乎。

4、当前主要使用的源程序版本管理软件和项目管理软件的优缺点

1.软件使用量排名

  一、github:约31,000,000用户量

  二、SourceForge:约3,700,000用户量

  三、Bitbucket:约5,000,000用户量

  四、GitLab:约100,000用户量

2.各软件的优缺点

  Git:

    1.是一个开源的分布式版本控制系统,能够有效、高速地处理从很小到很是大的项目版本管理。

    2.速度快、灵活,分支之间能够任意切换。

    3.离线工做,不影响本地代码编写,等有网络链接之后能够再上传代码,而且在本地能够根据不一样的须要,本地新建本身的分支。

    4.对初学者不够友好。

    5.国内速度较慢。

  Trac:

    1.有着良好的扩展性。

    2.Trac的权限体系是比较完备的设计。

    3.须要安装不少插件,较繁琐。

  BUGZILLA:

    1.检索功能强大。

    2.后端数据库支持功能强大。

    3.配置文件较复杂。

    4.本地化不够友好。

  Mercurial:

    1.命令兼容SVN。

    2.扩展性强,append only的存储结构。

    3.不少命令有双字母的简称,使用起来方便。如hg commit的简称为hg ci。

    4.功能太过简陋。

相关文章
相关标签/搜索