在两个星期前,我对结对编程可以说是一无所知,直到老师说出了这个词,我才关注和进行。
就结对编程这件事,我的经历是,先进行了实践,然后才看理论的。也就是说,我并没有第一时间查找结对编程的优缺点,而是先切身感受了,然后发现百度百科、维基百科说的对啊!有种很奇怪的喜悦感,不解。
这篇随笔我也打算先从我的经历开始。
就在杨老师布置第一次作业(四则运算或词频统计,结对完成)的时候,我第一反应就是和王巍姐(以下用“王”简称。博客http://www.cnblogs.com/shirlywangwei/)结对编程。
我有以下考虑:
1.王有实际工作经验。
2.在平时的上课、学习中我们经常交流,内容从工作到生活不限。
3.王对我提出的问题总是很热心的解答。
4.就我个人而言,在编程方面,我完全信任她。
5.王说不会的时候,会立即去寻求答案。(这点杨老师说过,非常重要。也就是执行力好。)
以上是经过思考后的结果,第一反应与以上均无关系。一件事情开始了,脑子里就闪出了这么个人,我想,我愿意与她一起。
于是我们开始了结对编程。
在结对编程过程中我们经常交换位置,也就是我们交替的使用键盘进行输入。我们先讨论了“四则运算”软件的用户需求,在提需求的过程中我们就“开始答题”、“提交答案”、“结束答题”这三个按键的有无进行了讨论。我一开始并没有“结束答题”,而是“重新答题”。王指出“重新答题”有歧义,是重答当前题目,还是全部清零,如果是重答当前题目,那提交按钮的功能是不是要重新定义。于是我们决定使用“结束答题”。
具体编程过程是王先进行编程,然后重复、类似的工作由我去做。在我编程的过程中,总是会因为“要使用哪个方法,使用哪个函数”而停止编码,这时王会告诉我有什么方法,有什么函数。王让我先上网查她说的方法和函数,然后再让我进行编码。遇到我们都不知道用什么方法或函数时,我们会一起上网查找。这个函数是否有参数?是否需要调用声明?是否有返回值?我们关注完这些问题之后就使用这个函数,一个不行,就换第二个,第三个......直到成功。在编程过程中,王总是担心函数和方法能否直接使用,而我持有的态度是“为什么不试试呢”。DataTable.Compute()这个方法就是我们试出来的,可以直接使用,节省了我们不少的工作时间。于是第一版结束了。
第一版结束之后,我只是盯着眼前的代码,到底有什么可改进的地方。而王想的是要添加功能(混合运算,括号的加入),想的是第二版、第三版。我们的思维方式不同,她影响着我,我无意中为她理清了自己的思路,能考虑更多的问题。
这就是我的第一次结对编程。
对我而言,我得到了编程的经验,包括项目的流程、方法的熟悉、函数的具体使用、以及遇到问题的解决方法和心态(重点)。
以下是百度百科、维基百科对结对编程的解释。
http://baike.baidu.com/link?url=Rqit2rFLhQ10Yk-Y-BFiXyHQnNDOK5jmdxLrXyqZ0G9et2V5F1cRR4vdPFWvcQOxknNN0HBiH6LRea5OCN2w8a
https://zh.wikipedia.org/wiki/%E7%BB%93%E5%AF%B9%E7%BC%96%E7%A8%8B
好处、坏处,说一百遍不如做一遍。谢谢!