阶段要求
1)查阅相关资料加深对敏捷开发和结对编程的理解;
2)组队情况,各队博客地址,github仓库地址,所选择的课题;
3)针对课题查阅的资料,对课题的理解;
4)二个人商量后,采用开发平台和技术工具;
5)二人讨论的记录;
一、对结对编程的理解
首先,什么是结对编程呢,根据百度百科的定义,结对编程是指两委程序员坐在同一工作台前开发软件,与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。对结对编程的详细理解我觉得可以有以下几点:
(1)合作
合作从来都不是一件简单的事情,但是合作可以让事情变得更多样化,综合性更强,同样的,每个人分担一定的工作,也是可以大大提升工作效率的。
(2)思考层面
两个人的思考层面会有所不同,他们可能在技术的提升上不会有很明显的表现,但是他们在不同的抽象层次解决同一个问题会让他们更快的找到解决方案,而且错误更少。
(3)提升团队能力
开发,永远都是一个团队的事情, 一个人能完成多么好呢?个人的力量,永远是有限的,我们需要锻炼自己的团队合作能力,当我们经常在编程时遇到难题了,大家都会怎么做呢?多半都是上网,寻求大牛的帮助,或者自己研究其他人的代码吧?为何不尝试结对编程?相信你的队友,他会给你带来很多全新的思想。
我跟我的队友进行了结对编程,我们根据老师的题目,利用c++/c 、Java语言编写了一个小程序,用于完成一个有趣的游戏,我们得到了很好的收获,我在编程的时候,有一些小问题得到了她的纠正,我在某些时候的思路不是很好的时候,我的队友也给了我一个很好的思路。
二、组队情况
姓名 学号 博客地址
李桃利 https://home.cnblogs.com/u/Torryli/
王怡 3170701206 https://www.cnblogs.com/wendy980514/
所选课题:生命游戏
仓库地址:https://github.com/Wendy980514/torry-wendy-arithmetic.git
三、课题理解与描述
生命游戏是英国数学家约翰何顿康威在1970年发明的细胞自动机,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死亡 的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去; 相反,如果周围活细胞过少,这个细胞会因太孤单而死去。游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个方格中都可放置一个生命细胞, 生命细胞只有两种状态:“生”或“死”。 图中,用黑色的方格表示该细胞为“死”,其它颜色表示该细胞为“生”。游戏开始时,每个细胞可以随机地(或给定地)被设定为“生”或“死”之一的某个状态,然后,再根据如下生存定律计算下一代每个细胞的状态:
●每个细胞的状态由该细胞及周围8个细胞上一次的状态所决定;
●如果一个细胞周围有3个细胞为生,则该细胞为生,即该细胞若原先为死则转为生,若原先为生则保持不变;
●如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变;
●在其它情况下,该细胞为死,即该细胞若原先为生则转为死,若原先为死则保持不变。
四、开发语言以及开发平台
C/C++和JAVA,Microsoft Visual C++ 6.0和eclipse。
五、讨论过程及记录
我们两个人的动手能力都是很差的,每次实验课程我们都是小组中最不知所措最后完成的。这次有幸我们两个组成了队员,两个臭皮匠胜过诸葛亮,过程虽然坎坷但结局还算完美的。
我们首先就开发语言做出了讨论,我第一选择是python语言,因为python语言简洁易懂,而且是我最感兴趣的一个语言,但是后来写代码阶段我就意识到我对于python语言的知识把握远远不够,边学边写对我来说难度太大又浪费时间,最后就放弃了python语言,然后连个人分开,各自完成一个代码。代码完成后发现我们两个的开发语言和平台都不相同,但是这个不影响,所以我们就这么下去了。然后就开始琢磨怎么把代码放到仓库里面去。github的全英文对我们来说真的很头疼,一边看着电脑,一边还要用手机随时对陌生单词进行翻译。不负我俩所望,最后终于完成了这个仅仅是第一阶段的实验。
小结及感想
结对编程是两个人或者一个团体的合作,1+1肯定大于2,我们两个分工明确,配合默契,完成效率更高。遇到问题两个人提出各自想法加以讨论,最终可以得到更优的方案。