结对编程收获
Posted wispytrace
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结对编程收获相关的知识,希望对你有一定的参考价值。
结对编程体验:
经历了这次编程体验,让我觉得,1+1的效率绝对是大于2!结对编程,在人与人交流中工作,是十分愉悦的,进而大大提高了我的工作积极性。在整个开发过程中,同伴起的作用都非常巨大。
首先,体现在软件架构上面,因为有同伴进行讨论,让两个人的思维都得以充分运转,在激烈的争论中,两个人互为补充,往往能对所遇到的问题或将遇到的问题认识得更透彻,能够很快抓住要点,迅速掌握本质。与此同时,因为每个人的思维侧重点不一样,个人经验不同,单独想的话,总会在架构上留有一些意想不到的漏洞,但是两个人一起谈论时,就能互相发现对方设想中的不足,早早提出,早做准备,减弱了开发中期代码重构的危险。
其次,还体现在编码过程中,在具体编码的过程中。我们两个人都经常会犯各种错误,如错写变量名,string变量的错误,‘ ’与“ ”的差别,最最严重的,就是逻辑上的错误,如加减乘除,商要为整数,中途不能出现负数等要求中的逻辑,这个时候,正在编程的人遵循着自己的逻辑进行编码,会觉得理所当然,没能意识到自己编写的逻辑出了漏洞,但旁观者清,结对同学便能很快看出逻辑上出了哪些纰漏。针对以上这些情况,编译器是不会报错的,如果不加以解决,可能只有在最后运行时才能发现。而靠同伴的提点,进而得以改正,省时省力。
再者,在Debug过程中,有队友一起debug,大大增加了工作效率。因为有些地方出了问题,可能你暂时无法理解,但是队友却理解了,然后他把这个问题浅显易懂的说给你听,让你很快理解问题出在哪儿,然后一起思考解决该BUG的操作。
最后,在结对编程过程中,我学习到了结伴对象在编写程序过程中体现的优良风格,以及一些编程上的小技巧,对一些问题的处理方式,受益匪浅。与此同时,在一些有关技术的问题上,如后缀表达式,表达式二叉树等,面对面的交流与指导,能够让我很快的理解与掌握。
API对接体验:
我们作为Core组,其实在与UI对接的过程中,出的力并不是很多。主要的工作是提供丰富的接口与丰富的版本。下面我说一下,在与UI对接时的一些接口措施。我们刚开始时,打算是只暴露给UI一个接口,即Setting函数,其接受的为一些如表达式长度,操作数范围,是否支持小数,分数,加减乘除,乘方等设定的参数,但我们发现,在实际操作时,这个函数的入口参数要求太多了,要全部按顺序写入函数,实在是太过麻烦,而且还容易出错。因此,我们的对策是,创建一个结构体数组,里面存的是对算式种类进行设置参数,这样,既方便UI组对各种参数进行即时修改,即修改结构体中的数字即可,也大大减少了出错率。紧接着,UI组又觉得,每次调用都要设置那么多参数才运行,有些不想输入的话,就报错,无法方便快速的使用,实在麻烦。为此,我们的解决方案是,给每一个功能设定参数设置一个默认值,这样,即使不设置参数,也能快速的生成算式,如果用户想要在一方面进行修改,只要修改一下就好了,而不用重新再全部输入一遍。此外,还有些UI喜欢的把接受的参数,设为一个字符串,还有些UI,喜欢把接受的参数设为一个整数,有些UI喜欢按内存,即表达式的形式数组进行输出,有些喜欢读取文件进行输出。对于这些情况,我们的考虑是,设置两种接口与两种输出,既支持字符串输入,也支持整数输入,既支持文件输出,也支持数组内存的形式输出。
接口设定好了后,就出现了版本问题了。有些UI想用x86,有些想用x64,有些还要求是debug,release等,我们的考虑是,对于每一种情况,都设置一种dll文件,然后一起保存到一个文件夹中,UI想用哪个版本,则调用哪个版本即可。
总而言之,API接口设置,在事先大家都没有约定好的情况下,只能多做一些,多想一些,以应付不同的情况。反而言之,这也意味着,在以后的开发,如果需要与其他UI组进行合作开发,那么一定要事先把一切商量好,这样对于双方,都大有益处,能提高工作效率。
对于本门课的看法:
我觉得这门课非常棒,让我接触了许多以前从来没接触过的东西,了解了软件开发行业的一些事情,以及软件从事者们的基本素养。但是,我觉得有些不足的是,上课到至今,所接触的好像大部分是理论上,以及素养上的培养,而课程对于技术上的提高,全靠布置作业让我们自学拉起来。我在这里希望老师能大概讲述一下软件工程所设计的全套技术栈的工作流程,以及每个流程是干什么的,是实现了一些什么机制。不需要老师仔细讲每个技术的语法,以及具体编辑操作。这样,就能让我们对软件整体开发有一个具体的认知,从而使我们将来开发软件时,如果遇到了技术需求,便能很快认清自己需要掌握哪门技术。
以上是关于结对编程收获的主要内容,如果未能解决你的问题,请参考以下文章