第五次作业

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第五次作业相关的知识,希望对你有一定的参考价值。

开发时间:周二下午及课余时间

 

内容:两人一组做一个随机抽签程序,并记录程序的进程及问题

 

感想:虽然两个人一起完成了这个程序,但是问题很多,查了很多的资料。但是经过这次程序设计我也学到很多,学习了很多关于C#的知识,让自己得到了一些提升。还有就是我觉得设计程序是查资料很重要,如果有自己与队友解决不了的问题一定要多查资料,或者问老师问学的好的同学,自己坐那死研究肯定做不出来,因为代码不是死的东西,它的使用很灵活。死学是没有用的。

 

 这周《构建之法》的阅读内容还是第四章和第五章,因为这周老师讲的内容就是团队的合作、结对编程,所以又读了一遍。

第四章 两人合作

   通过结对合作,令我意识到了编写程序不仅仅要自己能明白,也要便与他人查看和理解自己的程序。

4.1大节提到的代码规范,我们编写代码时要注重代码风格规范和代码设计规范,无论是类名,对象名,缩进还是行宽什么的,在结对子编程时都要有所规定,不然到后面出现的类或是对象多了,就很容易混乱,分不清楚谁是谁。要学会封装,编写函数,将功能模块具体化,减少主方法里面的代码,避免大规模的出错。

   4.4中提到了代码复审,在平时编程程序时,我也会从头到尾的查看自己的代码,运行程序,若是多次结果相同,无误就可以了。没有想过发现代码错误外,还去思考逻辑是否有误,算法够不够优化等其他问题。他人能否觉得我所编写的程序是否简单易懂,能否从中学习。

   4.5结对编程,两人合作,一同思考一同编写程序,有利于提高效率,相互学习。所以要学会4.6节提到的合作的不同阶段和技巧,一开始探索项目时,中途遇上不可解决问题时,后期简单的复查时,可以独立思考,期间思路清晰,沟通良好时,一起结对编写,加强合作。在合作中在客观全面的对待自己的结对伙伴,懂得相互鼓励,相互学习。

  第五章  团队合作

     结对编程,两个人好交流意见,产生分歧不大,换做是团队合作会怎么样呢?会不会尚未从结对编程中脱离出来,对团队合作感到混乱,不会分工,不便于交流?所以我们要学会需找合适的团队合作模式和开发流程。书本上提到了很多的团队合作模式和开发流程,都各有优缺点。仅仅从校园合作的角度出发,我认为使用功能团队模式更适合彼此合作交流,而开发流程在校园合作阶段,容易被忽视或是考虑的不全面,大伙要着重培养。

 

对结对编程的理解

  结对编程技术是指两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。

所谓结对编程,也就是两个人写一个程序,其中,一个人叫Driver,另一个人叫Observer,Driver在编程代码,而Observer在旁边实时查看Driver的代码,并帮助Driver编程。

有实验证明,结对编程时间花销比单人编程增加10%的时间,也会比单人编程减少15%的代码BUG。如果再算上后期代码的维护和学习成本,结对编程比单人编程更有效率,更为节省成本。

虽然结对编程的优点有很多,但是也有缺少。

优点:

1、程序员互相帮助,互相教对方,可以得到能力上的互补。

2、可以让编程环境有效地贯彻Design。

3、增强代码和产品质量,并有效的减少BUG。

4、降低学习成本。一边编程,一边共享知识和经验,有效地在实践中进行学习。

5、在编程中,相互讨论,可能更快更有效地解决问题。

缺点:

1、对于有不同习惯的编程人员,可以在起工作会产生麻烦,甚至矛盾。

2、有时候,程序员们会对一个问题各执己见(代码风格可能会是引发技术人员口水战的地方),争吵不休,反而产生重大内耗。

3、两个人在一起工作可能会出现工作精力不能集中的情况。程序员可能会交谈一些与工作无关的事情,反而分散注意力,导致效率比单人更为低下。

4、结对编程可能让程序员们相互学习得更快。有些时候,学习对方的长外,可能会和程序员们在起滋生不良气氛一样快。比如,合伙应付工作,敷衍项目。

5、面对新手,有经验的老手可能会觉得非常的烦躁。不合适的沟通会导到团队的不和谐。

6、新手在面对有经验的老手时会显得非常的紧张和不安,甚至出现害怕焦虑的的精神状态,从而总是出现低级错误,而老手站在他们后面不停地指责他们导致他们更加紧张,出现恶性循环。最终导致项目进展效率低下,并且团队貌合神离。

7、有经验的人更喜欢单兵作战,找个人来站在他背后看着他可能会让他感到非常的不爽,最终导致编程时受到情绪影响,反而出现反作用。

经过这次和队友的结对,共同完成了一个程序,我个人认为因为我们现在的水平较低,结对编程有好处,大家可以一起讨论问题、查阅资料。但是以后走上工作岗位之后、在有能力的情况下,不一定每次的程序都要结对。因为个人有个人的想法,大家可以在做之前先讨论,提出自己的想法怎样去实现,达成共识以后一个人去做,因为每个人编程的习惯和方式都不同,一个人按照大家的意思做出来以后可以再研究哪里应该在原有的基础上做点什么改变,但是要注意提问题时的方式方法,不能太自我,要以大众的眼光为重。可以的提出自己的想法,大家一起来讨论这个想法的优缺点,再决定实现不实现,不能一意孤行,以自己为重。结对编程或是独立完成都有一定的优缺点。每件事物都有它的两面性,完成程序的方法不是固定的,只要找到适合自己的,并可以方便快捷的设计好程序的方法即可。

以上是关于第五次作业的主要内容,如果未能解决你的问题,请参考以下文章

第五次博客作业

第五次作业

软件工程第五次作业(结对作业)

结对作业2(软件工程第五次作业)

第五次作业(结对第2次)

《软件测试》第五次作业