软工第1次我的做业

软工第1次我的做业

项目 内容
这个做业属于哪一个课程 2019春BUAA SCSE软件工程
这个做业的要求在哪里 第1次我的做业
我在这个课程的目标是 学习团队开发项目,为之后的工做提供经验
这个做业在哪一个具体方面帮助我实现目标 阅读了《构建之法》,了解到了软件工程的思想

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

1.关于结对编程的效率

既然代码复审能发现这么多问题,有这么好的效果,若是咱们每时每刻都处在代码复审的状态,那不是很好么?事实上,极限编程(Extreme Programming)正是这一思想的体现——为何不把一些卓有成效的开发方法用到极致(Extreme),让咱们无时不刻地使用它们?
-- 引用自《构建之法》4.5 结对编程 P78git

在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工做。他们并排坐在一台电脑前,面对同一个显示器,使用同一个键盘、同一个鼠标一块儿工做。他们一块儿分析,一块儿设计,一块儿写测试用例,一块儿编码,一块儿作单元测试,一块儿作集成测试,一块儿写文档,等等。
-- 引用自《构建之法》4.5 结对编程 P79程序员

这样的结对编程真的是有效率的方法吗?它和普通的两人团队效率会更好吗?最初的结对编程多是由于资源的不足,可是现现在可能除了时间之外的资源都是充足的,这种传统意义上的结对编程是否是会太过于消耗时间?赛车和飞机里驾驶员和领航员是不能同时开飞机,但对于代码的撰写能够两人同时撰写,再抽出必定的时间进行审查,是否会比这种纯粹的结对编程效率高?github

2. 关于goto语句

函数最好有单一的出口,为了达到这一目的,可使用goto。只要有助于程序逻辑的清晰体现,什么方法均可以使用,包括goto。
-- 引用自《构建之法》4.3 代码设计规范 P69编程

在我最开始学习C语言(《C Primer Plus》)的时候,我记得很清楚,书上关于goto语句的态度就是不建议使用,我也常常据说不建议使用goto语句,由于goto语句确实可能存在着必定的问题,并且很难被本身发现,尽管goto语句在某些状况很是好用,好比在上学期的编译课程设计里对于各类各样的错误处理,使用goto语句会很是的简单,可是我最终仍是没有采用,而是使用了大量的if-else和return语句来进行处理。我我的仍是不太喜欢使用。服务器

3. 迷思之四: 创新者都是身先士卒

的确,如书中所提到的有些行业的先行者到了后来并非该行业的领导者,可是我以为这正是由于该行业的后来者的创新而致使的,因为后来者的创新,他们有了新功能,有了更加吸引消费者的地方,所以他们才能成为领导者,创新也才能身先士卒。网络

4. 用户体验之不让用户犯简单的错误

我以为在如今,让用户犯简单的错误却成了一种设计——如今不少的常见的软件老是将广告塞在巧妙的地方,不仔细看都不会发现那小小的“广告”两个字,好比微博中常常就有这种广告,配以诱惑性的图片和文字,当手指移过去才反应过来这是个广告。这种广告必定程度上影响了用户的体验,却可能提升了广告的效应同时可能增大了企业的利益,那么该如何平衡项目受益以及用户体验呢?同时,提升用户的体验势必要付出更多的代价,这里又该如何平衡呢?分布式

5. 迷思之五:要成为领域的专家,才能创新

70%的创新者说,他们最成功的的创新,是在他们的那首领域以外发现的。
-- 引自《构建之法》16.1创新的迷思 P347函数

我认为这的确是个迷思,我以为其中的缘由多是当一我的成为了某一行业的专家,那么他确定是有着必定的研究方向,其产生创新的几率就比那些刚入门的人小,由于他颇有可能会坚持这本身的方向去钻研。那咱们又该如何避免这一问题出现呢?毕竟咱们也是要一直研究、一直学习的,是否是意味着,咱们到后来也将没法产生创新?被后人所追赶?gitlab

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

  • 根据维基百科,“软件”这一律念最先是Richard R. Carhart在出版于1953年8月的兰德公司研究备忘录(Rand Corporation Research Memorandum)里出现的。单元测试

  • “软件工程”这个词在1965年6月就在计算机与自动化的期刊被提出了(来源维基),但玛格丽特·汉密尔顿则在1968年北约的科学家们所开的一届会议上比较正式的提出了这一个概念,使之成为一种专业术语。

3. 你们知道了软件和软件工程的起源,请问软件工程发展的过程当中有什么你以为有趣的冷知识和故事?

  1. 最开始的电脑的操做员都是女性,由于她们被认为更加细心(这个可能已经不算是冷知识了)。
  2. 前段时间火爆的产品经理和程序员打架,网络传言是产品经理要求APP主题跟随用户手机壳颜色改变(其实已经被证明为谣言),引发了网友的大量讨论,好比采用瞳孔反射来判断用户手机壳等等奇妙的想法,也引发了许多程序员相似的抱怨。

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

  1. github目前已经有了超过3100万开发者。(数据来源
  2. BitBucket目前有超过100万个团队以及600万名开发者。(数据来源
  3. gitlab目前已经有了超过10万个组织。(数据来源
软件 优势 缺点
Microsoft TFS 强大
集成了多种功能,适合团队使用
搭建起来复杂,难以维护
Git 分布式版本控制
易于控制,很是灵活
命令太多,学习起来难度略大
Mercurial 命令行
简洁
服务器部署相对容易
执着于向后兼容
GitHub 免费
开源
基于Git
依赖于网络
Bitbucket 支持hg(Mercurial?)和Git
免费闭源
限制人数

来源:

  1. https://www.zhihu.com/question/21943395/answer/27222595
  2. https://www.zhihu.com/question/20403480/answer/25068499
  3. https://www.zhihu.com/question/20053312/answer/20005315
相关文章
相关标签/搜索