软件工程网络15我的阅读做业2-提出问题

提出问题

快速通读教材《构建之法》,并参照提问模板,提出5个问题。

如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互联网时代如何提问题。 还有这些要点:

  • 在每一个问题后面,请说明哪一章节的什么内容引发了你的提问,提供一些上下文
  • 列出一些事例或资料,支持你的提问。
  • 说说你提问题的缘由,你说由于本身的假设和书中的不一样而提问,仍是不懂书中的术语,仍是对推理过程有疑问,仍是书中的描述和你的经验(直接经验或间接经验)矛盾?

一个模板能够是这样:

我看了这一段文字 (引用文字),有这个问题(提出问题)。 我查了资料,有这些说法(引用说法),根据个人实践,我获得这些经验(描述本身的经验)。 可是我仍是不太懂,个人困惑是(说明困惑)。html

或者这样:java

我反对做者的观点(提出做者的观点,本身的观点,以及理由)。程序员

大学生应该能写出本身的思考, 而不是摘抄书本内容。算法

提示:编程经验很少的同窗,建议看16章 “创新”, 提出本身的问题。数据库

问题一:

d. 进一步说,“覆盖率”有下面几个层次:编程

  • 1.函数的覆盖,这个模块的每个函数都覆盖了么?
  • 2.语句的覆盖,这个模块的每个语句都覆盖了么?
  • 3.分支的覆盖,这个模块的每个条件分支都覆盖了么?
  • 4.条件的覆盖,这个模块的每个布尔表达式的TURE|FALSE都覆盖了么?

在读2.1.2 好的单元测试的标准时,在P27中读到了上文,做者说代码覆盖率须要考虑到每一个模块是否覆盖到了每一个函数,是否覆盖到了每一个语句,是否覆盖到了每一个条件分支,是否覆盖到了每一个布尔表达式的TURE|FALSE。可是在实际的软件工程中,在进行单元测试时,咱们真的要保证有100%的代码覆盖率吗?是否只要保证了单元测试覆盖了全部的代码路径以后,像是语句覆盖之类的就能够不用所有代码覆盖了呢?就像若是出现了《100%代码覆盖率的悲剧》中提到的状况那样,某段代码功能看起来很简单,没有条件,没有循环,没有转换,没有任何复杂的东西,只是一段简单的老胶水代码。那么这时候咱们也须要对它们进行代码覆盖,进行测试吗?这类的代码咱们是否也要对它们保证彻底覆盖呢?编程语言

问题二:

在结对编程中,由于有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。函数

在读4.5.2 为何要结对编程时,在P85页读到了上文的内容,做者说两人结对编程时,程序的质量将取决于水平较高的一位,也就是说在编程过程当中是由水平较高的程序员做为主导。可是这样的话,在进行编程的过程当中,是否会出现水平较高的程序员长时间的掌控着键盘,而水平较低的程序员是否也会以为由水平高的写代码可以更好地完成项目或者课设,而后本身基本上没有作什么核心任务这种状况呢?那么到项目结束时,就会出现不会的人仍是不会,会的人更加会了的状况。像这样的状况在咱们的课设中也是能够看到的。若是咱们想要避免出现这样的状况,那么在编程初期咱们应该怎么样分配工做才可以保证即有质有量地完成编程任务,不会出现代码来不及写的状况,又可以让两我的都可以都参与到主要代码的编程中?怎么样的工做量才可以让结对编程的两我的都可以有所收获呢?单元测试

问题三:

获得了需求以后,软件团队就要考虑实现这些需求。一个公司可能有多种软件产品和服务,它们各有不一样的战略意义。一个软件或服务也由不少功能组成,它们有机地结合起来,才能解决用户的问题,产生效益。测试

在读8.5 功能的定位和优先级时,在P171页读到了上文的内容,做者说开发一款软件须要在需求分析时将所收集到的用户的需求按照不一样的着重点来开发不一样的功能。可是咱们要如何来肯定每项功能的优先级呢,如何肯定那种功能是这款软件的杀手功能呢?是根据市场上其余软件的使用状况来决定,仍是根据对目标人群的调查来决定?并且根据书上P174—P175中的三幅图来看,咱们是否是不只仅要将杀手功能决定好定位,并作好它,还须要在这基础上添加一些市面上同款软件没有的功能呢?就像咱们在去餐厅就餐时,若是有一家餐厅卫生又好吃,还不时有些小活动,咱们通常都爱去那吃,那么在开发软件上也应该要作到这样的吧,这样才可以产生效益。

问题四:

好的用户体验固然是全部人都想要的,若是它和产品的质量有冲突,怎么办?牺牲质量去追求用户体验么,用户能接受吗?

在读12.1.6 用户体验和质量时,在P269页读到了上文的内容。确实,在开发软件时或者是更新软件时,不免会遇到上述的状况。若是用户的需求,用户的体验和咱们的优化的功能或者软件起冲突了,那么咱们是该顾着用户的需求呢,仍是继续推出优化软件?做者在这段话后面引用了一个案例来讲明了做者本身的答案,可是彷佛太片面了,并非全部的状况均可以是顾用户的需求,舍功能的优化的。而且当二者利弊都差很少时,咱们该怎么选择呢?是否能有个准则来让咱们衡量呢?

问题五:

能够看出,在算法和数据库领域,创新的想法一开始每每不被接受,而那些创建在前人基础上的“线性扩展”则每每有着更好的命运。

在读16.1.2 迷思之二:你们都喜欢创新时,在P349-P350页读到了上文的内容,结合前文的内容,不难看出做者认为更新升级每每比起创新更容易让人们接受。确实,就像是若是你还不容易学会了某种经常使用的编程语言,例如C语言,java等,结果一段时间后,开始使用某种新的编程语言进行编程了,又只能从头学起了,这样的话,确实只是更新会比创新更让人接受。可是,若是仅仅只是更新换代,不进行技术的创新的话,那么科技的发展就只能停留不前了。咱们如今的社会不也是一步步从原来的创新中创建起来的吗?若是咱们否认了创新,那么咱们是否是也否认了如今呢?那么咱们该如何打破人们对于创新的偏见呢?

【附加题】:请将问题提交至豆瓣:https://book.douban.com/subject/27069503/, 并在博客中给出连接

在豆瓣页面的最下方 “读书笔记” 那里发言, 《构建之法》的做者会亲自答复问题

https://book.douban.com/annotation/54352057/

相关文章
相关标签/搜索