作业三:读《构建之法》1-5有感

这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2178

       在国庆这个小长假,我简单地阅读了《构建之法》1-5章,对软件工程这门课有了更深的认识。在阅读过程中我找到了不同的疑惑,并且对问题进行了一番小思考,领悟到了不少有用的东西。

第1章:概论

        看完了这一章的内容,我认识了软件工程的定义,包括软件开发的不同阶段,软件工程是什么,软件的特殊性,软件的知识领域等等。

       在这一章中,我看了一段内容,是关于怎样定义一个“好”的软件。其中说到:“一些同学认为,所谓好的软件,就是软件没有缺陷(bug)。”思考一下,究竟这个说法准确吗?毕竟很多人认为bug就是质量不合格,没有bug才是完美。其实,这个说法也太绝对。文中的观点是,那不一定。它举了一个例子,是关于汽车在出厂时都会通过各自的质量检测,必须符合行业的质量要求。但是,当你问路人哪些车比较好的时候,很多人会告诉你有些车的质量大大好于另一些车。对于顾客来说,他们觉得某一类车能满足他们的需求,他们便会觉得这车好,哪怕它有一点点毛病。对于这个说法,我思考了片刻。也大致上赞同这种说法,根据我尚浅的经验,我认为站在工作人员(码农)角度,会认为有bug是不合格的,但是细想一下,当一个bug解决了,能否确保另外的问题不会出现?当你花了很多时间在测试和解决问题上,最后得出的收益能否弥补时间和精力的损失?你不能确保一个产品,能否达到真正的完美。相反,站在一些使用者的角度,他们认为有bug等小毛病也好,能真正意义上解决他们的实际需求,才是最重要的。所以,在这章最后也说了,软件工程一个重要任务,是要决定一个软件在什么时候能“足够好”可以发布。我认为,大概就是在投入的人力物力时间上的付出能真正对应到多少人的实际需求,才是衡量产品好坏的标准吧....

第2章:个人技术和流程

       在这一章介绍了单元测试和回归测试的概念、区别和流程、用PSP简述了软件开发的流程等等..

      这一章大多都是硬技术啊。其中,令我印象较为深刻的是2.3章节的个人开发流程。其中,介绍了专家们针对软件工程师有一套模型,叫Personal software Process,简称PSP。它列出了一系列相关数据,分析了PSP有着各种特点。最后,也说到一个问题,工程师有可能高效地开发一个顾客不喜欢的软件,那这个工程师是否优秀来质疑PSP是否太过于依赖数据。这也能用上面内容说明,团队和个人能力和产品的标准衡量,应该用更多方面来给予评价。

第3章:软件工程师的成长

     在这一章中主要讲关于软件工程师的成长,怎样来定义一个软件工程师的成长意义和怎样来成长。其中引用了足球和篮球的能力判定和数据分析来评价他们是否优秀。那么,在软件工程这个领域,我们应该怎样学会成长呢?

文章中说到,关于初级软件工程师的成长。有着几个方面,分别是积累软件开发相关知识,积累问题领域的知识和经验,对软件设计思想的理解,提升职业技能。其中,我认为,在这几方面之前,首先有个前提,就是兴趣和坚持。没错,要成长,的确要有各方面的知识素养,这是所谓的硬实力条件。但是,我觉得,兴趣才是最重要。俗语说,兴趣是最大的老师。当你对一样东西很感兴趣的时候,你便会花上一切的时间和精力来投入,相反,当你缺乏兴趣,你便失去了动力。其次,坚持很重要。在我们第一次作业,我记得曾经这样写过,在大学,必须学会尽量少分心,不能半途而废。所以,我觉得,在成长的前提,应该加上这两点,才能做到更好的成长。

第4章:两人合作

      在这一章中作者主要讲述了代码的规范,以及要学会两人合作。

 在章节前一部分,主要说明一系列如何规范代码和一段规范的代码的团队的好处。其中,说到一点,是关于代码复审中要做什么。文中说到,好的复审者不光要注意到程序员修改什么,还要把目光放远,就是考虑其他功能是否受影响。我认为这个真的很重要。我们永远不知道一个程序是否真的完美,它可能有着很多bug,所以在复审过程中,应该要注意一个修改能改变整个核心,细节能决定成败。所以,我们真的需要考虑更远,不仅是当下这个功能,还有更多。其次,要学会合作,结对编程。一个好的开发,是需要一个团队,一个人很难把这方面事情办好。所以,要写会这一点。文中说到,结对编程是一个渐进过程,是一个相互学习,相互磨合的过程。所以,我们要学会与他人共同合作。章节最后说到,关于影响他人的几种方式,我们需要留意和避忌。如果软件工程连一对一的合作都做不好,不能有效去影响同伴,就不能说更远的团队合作了。

第5章:团队和流程

     在这一章中介绍了不同的团队模式。每一个模式都各有所长,各有所短,而每个模式所进行的条件也不一样。我认为,一个团队的作用,是在于能完成某项由任何个人都无法独立完成的任务。因为只有团队合作,才能将复杂的事情变得简单,所以我们要学会需找合适的团队合作模式和开发流程。书本上提到了很多的团队合作模式和开发流程,都各有优缺点。从现阶段看,我认为使用功能团队模式更适合彼此合作交流,能最大地发挥大家各方面所长。相反,不赞同明星模式,俗语说:“三个臭皮匠赛过诸葛亮”。

总结

   阅读《构建之法》第1-5章的知识内容后,获益匪浅,对软件工程有了一些理解,对软件产品衡量标准有着新的认识,熟悉了软件开发各阶段的具体要求,对软件工程师成长方法认识,以及学会和他人合作对软件工程的重要性。在团队合作中需要每个成员的力量,发挥团队最大作用,才能大大提高开发产品的质量。所以,我应该学会培养对软件工程的兴趣,提高硬实力和学会和他人共同合作的能力。

     

猜你喜欢

转载自www.cnblogs.com/183289879qq/p/9752225.html