我的做业2

提出问题

快速通读教材《构建之法》,并参照提问模板,提出5个问题。
如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互联网时代如何提问题。 还有这些要点:html

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

一个模板能够是这样:程序员

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

或者这样:小程序

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

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

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

【附加题】:请将问题提交至豆瓣:https://book.douban.com/subject/27069503/, 并在博客中给出连接
在豆瓣页面的最下方 “读书笔记” 那里发言, 《构建之法》的做者会亲自答复问题运维

问题一:

在第一章概论中有提到spa

软件团队的人员也会流动,新的成员要尽快读懂已有的程序,了解程序的设计。设计

    在第一节软件工程课上,老师就讲了一下这个学期的教学安排,其中就有提到在作团队项目时,有个环节就是要进行成员交换。对于这个我不是很能理解,当你在这个团队已经一段时间,足够熟悉这个项目的需求以及程序的设计,而且跟其余成员也有必定的配合度,忽然交换成员,若是是能力较强的成员那却是影响不大,可是能力稍差的,则又须要必定时间去磨合,去熟悉程序的设计。这不是多费了一份功夫吗?

问题二:

在第四章4.3节中我看到了这段话,

当程序的主要功能实现后,一些程序员会乐观地估计只须要另外20%的时间,给代码加一些错误处理就大功告成了,可是这20%的工做每每须要所有项目80%的时间。
错误处理 1.参数处理 2.断言

    从这段咱们能够看出对程序的错误处理是很重要的,错误处理可使得代码更加稳定。可是像咱们在平时的编写小程序,或者作项目中,咱们通常都忽视了这个问题,只把主要功能实现了,而没有作到错误处理。因此在书中所提到对于错误处理中,断言的理解我不是很懂。什么是断言?在百度百科里提到

断言能够有两种形式
1.assert Expression1
2.assert Expression1:Expression2
其中Expression1应该老是一个布尔值,Expression2是断言失败时输出的失败消息的字符串。若是Expression1为假,则抛出一个 AssertionError,这是一个错误,而不是一个异常,也就是说是一个不可控制异常(unchecked Exception),AssertionError因为是错误,因此能够不捕获,但不推荐这样作,由于那样会使你的系统进入不稳定状态。

继而又产生了异常与错误,异常与断言是什么关系,是什么意思的疑惑?何时该用断言,何时该用异常?

问题三:

在第四章和第五章里讲到结对和团队的问题,文中提到

两个角色:驾驶员、领航员
程序各方面的质量取决于一对程序员中各方面水平较高的那一位

    一个很现实的问题就是队员的问题。咱们平时上课作实验有时候就是得搭档着作,作课设的时候也有须要搭档着作的时候,那么在团队里总有人能力较强有人能力不强。像在两我的的结对中,万一有一方能力较差一点,总不能全部事情都让另外一方去作。这样能力较弱的一方都没学到什么,更甚者两个编程能力都不强的人结对又该如何保证代码质量,要怎么去处理这个问题?在团队里,要怎么正确的给每一个人分配工做,又要怎么的把每一个人作的部分整合起来?

问题四:

在第六章敏捷流程中,提到敏捷开发的一条原则:

常常发布可用的软件,发布间隔能够从几周到几个月,能短则短

    一个可用的软件,并不等于一个好用,用户满意的软件。在经过百度搜索后看到,提到敏捷开发的一项主张——“简单”,主张最简单的解决方案就是最好的解决方案。不要过度构建你的软件。可是若是是一款简单的软件,当它在发布间隔能短则短的状况下发布,那么若是用户发现并无它所须要的功能,就不会喜欢它,即便以后有更新版本也不必定还会愿意去下载。在这发布间隔短,主张简单的状况下,如何保证用户还会下载最新版,如何保证软件的用户使用量

问题五:

在用户体验这一章,提到

用户体验的要素之一:从用户的角度考虑问题

    我想知道软件开发者是如何判断某个功能的设计是不是用户所满意的?好比手机百度app中,在更早以前的版本里,当你在访问某个页面的时候不当心按到首页键时,你能够经过按返回键从新返回访问页面。然而在如今的版本里首页键设置在屏幕的右下角很容易不当心按到,这时候若是你正在访问某个页面时,那么你只能经过“个人”-“历史”中找到相应连接从新访问,而不是简单的按下返回键就能够返回,在用户设置了不显示搜索历史时,那又该如何返回访问页面。

问题六:

在第十六章IT创新中,提到一点“迷思之五:要成为领域的专家,才能创新”,书中写到

统计数据代表:70%的创新者说,它最成功的创新,是在他们的拿手领域以外发现的。

    确实像书中所写的,阿里巴巴的创始人他所学的专业也不是与计算机、互联网有关的,而是英语,并非全部的创新必定是由该领域的专家才能实现创新。那么我想问,对于不是该领域专家的人,要怎么get到与这个领域相关的创新,而且愿意去付之行动,创新都是有失败的风险,不说该领域的人,就对于非该领域的人,又该如何作好创新失败的防范?

问题七:

对于之后从事什么方向的工做,有考虑往运维方向走。书中提到

软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。

    可是运维跟咱们如今学的《现代软件工程》有什么联系?emmm...,上文里提到,软件的开发...的过程。百度百科是这么解释网络运维的,"是指为保障电信网络与业务正常、安全、有效运行而采起的生产组织管理活动,简称运维管理或OAM"。那么我该如何学好,运用这门课?为何这门也是做为网络专业的必修课而不是选修课?

【附加题】
https://book.douban.com/annotation/54360415/

相关文章
相关标签/搜索