第一次博客做业

关于《构建之法》的几个问题


  1. 关于代码复审,复审者是否应该参与编码?若是复审者也参与编码的话,那么不免任务量较多,但若是不参与编码的话,工做分配的彷佛不太均衡。
  2. 关于敏捷开发,敏捷开发的过程彷佛很混乱,它的需求彷佛常常会改变,这样不就是没有设计好就开始写代码?那么不免遇到很大块的代码须要修改。
  3. 敏捷开发的过程在我看来仅适合一些小型的项目,大型项目中若是想应用的话会搞得一团糟,是否是呢?
  4. 单元测试要求对一切输入都有正确的输出,不能依赖本身的其余模块的代码,那么这不免会使咱们倾向于把每个模块都设计的很大,从而减小单元测试的压力……该如何避免这种状况?
  5. 结对编程,仅是指两我的共用一台电脑,一我的写,一我的看吗?两我的进行任务分配,每人完成本身的任务,也是一种互补的编程形式,这算不算结对编程呢?

"软件"和"软件工程"一词最先被谁提出?


"软件"一词,最先于1953年,在Richard R. Carhart记录的Rand公司的研究备忘录中能够看到。git

Carhart, Richard (1953). A survey of the current status of the electronic reliability problem (PDF). Santa Monica, CA: Rand Corporation. p. 69. It will be recalled from Sec. 1.6 that the term personnel was defined to include people who come into direct contact with the hardware, from production to field use, i.e., people who assemble, inspect, pack, ship, handle, install, operate and maintain electronic equipment. In any of these phases personnel failures may result in unoperational gear. As with the hardware factors, there is almost no quantitative data concerning these software or human factors in reliability: How many faults are caused by personnel, why they occur, and what can be done to remove the errors.github

"软件工程"一词,则是由Margaret Hamilton在NASA参与阿波罗11号的软件研发中提出的。编程

版本管理软件和项目管理软件


版本管理系统

  • Git

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到很是大的项目版本管理。分布式相比于集中式的最大区别在于开发者能够提交到本地,每一个开发者经过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。electron

  • Mercurial

Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 受权的开源项目。分布式

  • GitHub

GitHub是一个开源代码库,拥有140多万开发者用户。随着愈来愈多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。单元测试

  • bitbucket

BitBucket 是一家源代码托管网站,采用Mercurial和Git做为分布式版本控制系统,同时提供商业计划和免费帐户。它和github的一个区别就是能够无限制的建立免费私有团队(固然有人数限制)。学习

(未完待续)测试

相关文章
相关标签/搜索