结对编程——经验教训总结

结对编程之经验教训总结

“宝剑锋从磨砺出,梅花香自苦寒来。”

整整做了一个星期,终于将结对编程项目做完了,多少心酸只有自己知道,多少成就感也只有自己知道。这是真正自己动手,从最初的一头雾水到现在水到渠成,为自己鞠一把辛酸泪的同时,不禁也有一丝自豪:我还是很厉害的,用心去做还是能做出来的。

项目思路

我和队友的个人项目都是用C++写的,因此,这个结对编程我们选择的软件是QT。

我们把项目分为了两个部分:登录注册部分、题目显示部分。

登录注册部分我们做了四个界面:登录界面、注册界面、设置密码界面和修改密码界面;

题目显示部分有三个界面:选择类型界面、答题界面和成绩界面。

在制作时,我们先做出界面的基本框架,运用现学的知识,使用槽对界面进行连接,通过这种方式建立类与类之间的内部关系。然后我们再实现各个部件的功能,完成相应模块的代码,当然这其中出现了很多bug,我们一直在不停的debug。最后,当功能点都实现了之后,我们又花了一天半的时间对界面进行布局美化,同时测试运行,完善功能。

个人项目复用

虽然这个结对编程和个人项目有所关联,但是在实现的时候并不是很一样,除了生成试卷的函数进行了复用,其他的基本上都是重新写的。因为这里用户名和密码不是固定的几个,而是要用手机号注册,密码也是用户自己设置的,因此,个人项目的登录在这里就无法直接用了。个人项目中并没有计算出题目的答案,而在结对编程中又要有正确答案的选项,因此这部分也是要重新写的。而查重那一部分,由于个人项目的要求是同一个账户生成的试题不能重复,因此需要从文件的角度来进行查重,但是结对编程只需要保证一套卷子的试题不重复就可以了,这里使用vector数组就可以了。个人项目需要切换账号,但是结对编程并没有这个要求。综上所述,我和队友都感觉只有生成试卷那部分代码重用了,其余都是要重新写。当然,生成试卷的这部分代码是整个项目的核心,由于个人项目完成了,在这方面我们就省了很多时间,所以我们的结对编程的时间基本上都在可视化界面上。

教训总结

1、结对编程中,我得到一个结论,那就是1+1>2,我自认为,如果不是合作编程,在遇到问题我一定会花费更多的时间解决,我做出来的东西也会有很多功能没有实现,很多细节没有考虑。最重要的是,当思路陷入死局的时候,两个人一起讨论更容易打开思路,走出困境。

2、要养成一个记录的好习惯。在我们结对编程刚开始的时候,遇到很多错误,但是通常我们是遇到一个解决一个,可是到了最后却发现前面解决过的问题,后面又不会解决了。这里最明显的是输出问题,由于我们对qt语言的不熟悉,不怎么会debug,结果不对的时候就把中间变量输出,但是又不知道怎么输出QString变量。最初找到了一种解决方案,输出了一次,解决了当时的问题,但是后来需要的时候,又忘了如何输出,又重新百度,浪费了很多时间。然后从这个时候开始,我们才意识到应该用一个文档记录我们遇到的问题,并附上解决方案,这样才会学到更多的东西。下面附上从我们开始记录之后记录到的问题。

3、学无止境。虽然这个项目做完了,但是我知道,这个项目实现的功能其实很简陋,还有可能在后面测试的时候又发现了现在没有发现的问题。在最后完善代码的阶段,每次我们感觉已经很完美了,但是一测试,又有一些小小的问题,然后我们就要开始修改。好在,这个项目我们都是分类写的,遇到问题修改起来还是有头绪有思路的,这又一次证明了模块化编程对于维护修改的重要性。

4、沟通很重要。在整个项目,由于沟通的问题,原本想表达的意思对方get不到,因此起了好多次争执,其中还有几次我们争执到最后发现我们要表达的意思是一样的。这样子的情况花费了我们很多时间,但同时也锻炼了我们,到后面我们交流起来就比开始的时候顺畅多了。同时,我个人习惯的不同,我个人习惯由难到简,由面到点,但是队友习惯从简入难,由点及面,这个也不能说谁对谁错,主要还是要交流沟通,互通有无,取长补短。

5、控制情绪,心态平和的写代码。由于这个结对编程的工作量大,时间紧,中间又夹杂着很多其他的事情,因此我们都有些暴躁,尤其是遇到问题,就更加暴躁了,唉声叹气传递负能量,最终也不能解决问题。后来我们学习其他小组,彼此打气,互相鼓励,效率高多了。

总而言之,每次的实验都是一次学习进步的机会,这次的结对编程,真的让我们受益颇多。

原文地址:https://www.cnblogs.com/qszy-yhh/p/11601249.html

时间: 2024-10-07 03:53:30

结对编程——经验教训总结的相关文章

软件工程导论——结对编程项目总结

结对编程总结 1.关于复用个人项目实现结对编程项目 在与结对伙伴的讨论后,决定了各自负责的需求,那么我负责的是实现生成试卷以及答题窗口.对比个人项目,我需要实现的功能是显示一个答题窗口,而且每次显示一题,在答完了一题之后才可以进行答下一题,直到答完最后一题,点击提交试卷就会显示试卷分数.所以如何复用呢?相对于在个人项目中直接的生成试卷并写在txt文件中,这一次我把试卷题目和答案存储在一个二维字符串数组里,并且把生成试卷的方法以及显示窗口的方法写在两个类中,在显示窗口的类中调用生成试卷的类并实现其

结对编程— —总结、经验及教训 (范济海 徐振杰)

1.项目需求 用户: 小学.初中和高中学生. 功能: 1.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: 2.用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功.密码6-10位,必须含大小写字母和数字: 3.密码设置成功后,跳转到选择界面,界面显示小学.初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量: 4.用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目),界面显示第一题的题干和四个选项,用户选择四个选项

总结如何复用个人项目实现结对编程项目,以及结对编程的经验、教训。

复用个人项目实现结对编程时,首先分析谁的代码实现功能更好,复用性更好,这时候调用函数的重要性就体现出来了.在复用时可以直接复制整个函数加到项目中. 分工上,我负责功能界面的实现,队友负责新增功能的实现.在界面代码的编写上,有很多固定的套路,比如声明,设置位置等等.这时候继承组件,并在参数设置上直接给好要放置的位置等等.这样做在小项目上重要性体现不大,而一旦项目代码量上来后,甚至只到这次结对编程的小工作量,已经可以节省很大一部分的工作量. 避免写出几百几百行的代码,应将具体功能分成一个个小功能,这

结对编程总结,收获和教训:by张惠雨&梁佳佳

这是第一次正真意义上的和朋友一起完成一个小项目,虽然国庆七天少了几天玩的时间,但是收获还是蛮多的,感谢队友每天能和我一起去码代码,让这几天过得比较有意义. 这次的结对编程项目实在以前的个人项目的基础上实现的,其中出题模块完全时个人项目的引用,敲了几天代码,感觉自己在图形界面这一方面也有了一定的基础,可以实现一些简单的小功能,但仍不可否认,编码过程中是遇到好多问题的:最开始写的界面是注册窗口,本以为只是几个简单的文本框,却没想到却花了最多的时间,仅仅就验证码的申请这一块就耗费了两天的时间,而在注册

结对编程作业:四则运算

截止日期 2018年4月12日15:30 提交地址 https://github.com/eudaem/homework2 本次结对编程作业分为以下两种类型Core(计算核心)和UI(用户界面),每组任选一个完成,原则上两种类型题目各占一半 Core 像<构建之法>的人物阿超那样,写一个能自动生成小学四则运算题目并给出答案的命令行 "软件", 如果我们要把这个功能放到不同的环境中去(例如,命令行,Windows 图形界面程序,网页程序,手机App),就会碰到困难,因为目前代

结对编程总结by黄柏欣李斌

在十一国庆期间(当然,还有国庆之前的几天),我们进行了一个结对编程的项目. 对我受益良多,在伙伴面前发现自己的渺小,在知识面前,始终输给这浩瀚的海洋,及时发现了自己的不足,这次电梯项目,对我来说就相当于一个实际的项目.并且在一些逻辑方面并不是考虑的很严谨,最后的问题也是非常真实.还好,在伙伴的合作下,是我们的程序接近完美重要的一环.不仅提高了效率,也保证了程序编写的正确度. 最后就浅谈一下,我们对于结对编程的感受. 经验与教训:   一.结对编程的优势 我们认为,结对编程的优势主要就在于设计思路

个人项目复用代码实现结对编程项目

前言: 在个人项目中,实现小初高数学出题程序只需要命令行,但在结对编程中需要带图形用户界面,并且用户对象不再是出题老师,而是小初高学生.因为在个人项目中,两人分别使用C++和Python语言来编写的,而C++的图形用户界面感觉晦涩难懂,所有一致决定使用Python来开发结对编程项目,使用的工具为Python自带的Tkinter 结对编程项目要求: 用户: 小学.初中和高中学生. 功能: 1.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: 2.用户完成注册后

结对编程总结——基于QT的UI设计

之前在做个人项目的时,使用的是C++语言,因此在结对编程的UI设计选用了QT来进行处理. 用户注册功能实现:将用户名及密码储存在当前目录的一个txt文件中,通过文件的读写操作来进行用户的注册.其中验证码的发送使用的是秒赛云系统, 在添加Libcurl时QT对于外部库的链接遇到了不少麻烦. 修改密码功能实现:通过文件读写与一些判断语句实现. 题目生成:没有采取个人项目随机数生成题目的方式,而是建立题库,对于题库中的题目进行随机生成.这对于试卷系统的管理,题目正确的判断, 查重等方面都更加方便. Q

结对编程

结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作.一个人输入代码,而另一个人审查他输入的每一行代码.输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员).两个程序员经常互换角色. 在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理.这样使得驾驶者可以集中全部注意力在完成当前任务的"战术"方面.观察员当作安全网和指南.结对编程对开发程序有很多好处.比如增加纪律性,写出更好的代码等.