软工网络15个人阅读作业2——提问题
在读完《构建之法》后,并未有什么问题需要提出,所以只是提出了自己的观点和对书中一些观点的否定
观点1:软件服务始终都要记住用户的选择
原文:12.1.3--P263
- 阅读构建之法时,我看了这一标题,”软件服务始终都要记住用户的选择“,看了这个标题,也引发了我对用户使用软件的一些想法,大多数程序员在给上级展示自己的成品时,会在其界面展示许多功能,来表现自己软件的强大,但,这些软件是提供给用户来使用的,过多的功能会导致用户有些不知所措,甚至感到很烦,也查阅了一些相关资料,例如,遥控器的发明,曾近在电视机盛行时期,遥控器可以说相当重要,可以说电视的功能实现是由遥控机实现的,在随着科技发展后,遥控器上的按钮也可实现更多的功能,但这对用户来说,也并全是好处,遥控器的按钮增多,导致用户在调频道是容易按错,甚至老年用户因为按钮过多而不适应, 用户实际上就只用几个常用按钮而已,多余的按钮只会令用户困扰而已,所以在软件界面设计时,要更多以用户的感受,是否能令用户容易理解和接受的想法来设计软件,不能只是为了展现程序员所设计的软件的功能强大而已,以用户角度设计,才能令大众更容易的接受,来使软件得到推广和发展。
观点2:结对编程
原文:4.5.2--P85
- 原文中提到“结对编程能提供更好的设计质量和代码质量”,我觉得不一定需要结对编程也能提供更好的设计质量和代码质量,结对编程的解释是类似于搭档之间的相互合作,例如飞机的驾驶和副驾驶,但编程更多的是靠个人的能力,完成自己所负责的领域,更有些时候,在一些探究问题上,独自思考和完成可以给出更加接触的作品来,而不一定只靠结对编程,而且若是结对编程的搭档能力有差,也会导致另一个的负担加重;在团队项目开发中,不能保证足够的时间来结对编程,从而导致项目开发效率的落下,这样所写出的代码的质量也不一定令人满意;或者在开发中,结对编程中担任领导者作用的人在后期检查bug和优化等方面的作用可以说十分微弱;在多次的编程中,个人的编程能使自己的能力提升,技术得到提高,可以写出比结对编程更号设计质量和代码质量,所以,单人可以提供好的代码,为何还需要结对编码?
观点3:创新人士的关键特点不是喜欢冒险
原文:16.1.8--P360
- 创新是对一种领域的新的突破的想法,是一种挑战,也是一个冒险,而原文却认为这并不是一个冒险,我对此感到困惑,创新本身就是一种新的想法,有可能成功,也有可能失败,例如马云在创业期间,他提出来中国在互联网的未来发展,这是一次对互联网的创新,也是一次冒险,创新若是缺乏冒险精神,那它将很难成功,创新本身就是个未知数,当提出一个新的想法时,你或许只是对想法简单的构思一番,便可以遗忘,这个想法可能是对莫个领域的新的发展有重大影响,但也极有可能失败,因为不敢冒险从而失去对这个领域的飞跃式发展的机会,因此,我认为,创新就是一次冒险,敢于去实现自己的创新,才是创新,对“创新人士的关键特点不是喜欢冒险”持否定态度
观点4:获取用户需求---用户调研
原文:8.3--P160
- 只有满足用户的软件才能被大众所认可,,用户需要什么,要怎样满足用户的要求等等,从用户本身出发,才是使得软件成功被用户使用,所以,用户调研十分重要。例如360的成功,对于电脑的管理,有很大一部分的用户仍不懂如何管理,而360成功帮助用户解决问题,只需一键安装,既帮助用户安装其所需要的软件(无需装插件,注册机),还帮助他们管理电脑,这才使得360为海量用户所使用;这也是为开发软件的方向所做的调查,调研市场饱和程度,市场蛋糕的细分形势偏向于预测下一市场走向,才能让软件更容易被用户所接纳
观点5:单元测试必须由最熟悉代码的人(程序的作者)来写
原文:2.1.2--P25
- 代码的作者最熟悉代码模块间的联系的功能,但也不一定需要作者来写,只要读取代码,并且自己可以了解代码模块之间的关系就可以写模块测试,以此测试代码的正确性;代码的检测最主要是保证其可运行性和正确性,作者不一定在编写代码时就编好单元测试,这对作者编写代码时,也会使得代码的完成效率降低,可以让另一个人来编写单元测试,这样对代码完成的效率提高。