结对编程 第一阶段

结对编程 第一阶段

一、实验目标:

1)体验敏捷开发中的两人合作。

2)进一步提高个人编程技巧与实践。

二 、实验内容:

1)根据以下问题描述,练习结对编程(pair programming)实践;

2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。

3)要求在结对编程工作期间,两人的角色至少切换 4 次;

4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。



三、问题描述(生命游戏)
  (在与队员的探讨下,选择了生命游戏进行第二次试验)

    生命游戏是英国数学家在 1970 年发明的细胞自动机,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死亡的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。

    游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个方格中都可放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。图中,用黑色的方格表示该细胞为“死”, 其它颜色表示该细胞为“生” 。

    游戏开始时, 每个细胞可以随机地(或给定地)被设定为“生”或“死”之一的某个状态, 然后,再根据如下生存定律计算下一代每个细胞的状态:

每个细胞的状态由该细胞及周围 8 个细胞上一次的状态所决定;

如果一个细胞周围有 3 个细胞为生,则该细胞为生,即该细胞若原先为死则转为生,若原先为生则保持不变;

如果一个细胞周围有 2 个细胞为生,则该细胞的生死状态保持不变;

在其它情况下,该细胞为死,即该细胞若原先为生则转为死,若原先为死则保持不变。

 

四、对敏捷开发和结对编程的理解

  首先,敏捷开发,简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发;在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

  对于结对编程,也就是两个人组队写一个程序,其中,一个人叫Driver,另一个人叫Observer,Driver在编程代码,而Observer在旁边实时查看Driver的代码,并帮助Driver编程。并且,Driver和Observer在一起时可以相互讨论,有效地避免了闭门造车,并可以减少后期的code review时间,以及代码的学习成本。实验证明,平均下来,结对编程时间花销比单人编程增加10%的时间,但也会比单人编程减少15%的代码BUG。如果再算上后期代码的维护和学习成本,结对编程比单人编程更有效率,还更为节省成本。 所以无论是对开发团队还是对于Business,结对编程都会是非常不错的Programming Practice。另一方面,两个有经验的人可能会发现配对编程里没有什么技能的转移,但是让他们在不同的抽象层次解决同一个问题会让他们更快地找到解决方案,而且错误更少。两个程序员具有相同的缺点和盲点的可能性很小,所以我们当我们采用结对编程的时候会获得一个强大的解决方案。而这个解决方案恰恰是其它软件工程方法学中所没有的。

 

五、个人理解

  首先在一个环境中,有很多个细胞,细胞的位置信息,上,下,左,右,左上,左下,右上,右下的八个方位,如果这个细胞周围存在一个及一个一下,则下一代会消失;如果这个细胞周围存在四个及四个以上,则下一代会消失;如果这个细胞周围存在两个或三个,则下一代保留;如果这个位置,本来没用细胞,但是周围有三个细胞,则下一代满血复活。

 

 六、组队情况

队名:零零七

队员:金民  博客园地址:https://www.cnblogs.com/xiaomin0626/

队员:柯安健  博客园地址: https//www.cnblogs.com/meromoon/

项目仓库地址: htttps://github.com/jinminxin/-

 

 

 

 

七、远程交流与开发工具选择

  首先我们使用QQ进行实验的交流,必要时进行视屏通话进行远程共享。经讨论,采用eclipse这个开发平台,使用java语言来编写本次项目,并将实验成果上传到Github中记录结对编程情况。并借助百度浏览器查阅实验相关内容,将有价值的文章分享给队友 。

 

 

对于实验的进一步探究,等待后续进行  

 

 

posted @ 2020-03-22 10:47  小民啊  阅读(185)  评论(0)    收藏  举报
/*粒子线条,鼠标移动会以鼠标为中心吸附的特效*/