结对编程(铺垫)

结对编程(铺垫)

1.对敏捷开发和结对编程的理解

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

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

 

2.组队和选题

  由于不能在学校完成此次结对编程实验,我们采用远程结对编程,即结对的双方各自在自己的家中,通过QQ微信等各种实时视频联系的软件,共享自己的实验成果,从而达到远程结对编程的效果。

(1)首先,我们通过学习通组队,在软件工程的课程的中,我们创建一支双人小队,取名零零七,邀请队友加入队伍即可。

(2)通过对课题的研究与探讨,我们选择了生命游戏作为此次实验的课题,生命游戏是John Conway 发现的一种游戏。 其底层规则非常简单。 在一个二维点状平面上, 每一个点遵循如下规则:

  1. 少于2个邻居的点,在下一回合死去。模拟生命较少的情况。
  2. 在周围邻居数量是2和3时,下一回合保持不变
  3. 在周围邻居数量大于3时,下一回合死去,模拟生命拥挤的情况。
  4. 当一个空白的点,周围的邻居数量是3个是, 下一回合将会产生一个新的点。模拟繁殖。

3.github学习过程

  首先,我们在老师的github网址下fork名为pp_project项目,并记录我们的github地址,按照项目要求添加自己的组队信息。
 


  fork项目完成后,我们打开git,进入本地文件夹se2020-git-course,并在此目录下进行clone(文件夹在之前的实验已经创建,注意clone地址为fork项目的地址)
 
 
  在这之后,我们进行配置本地库和原始库的关联,用于与主开发者保持同一进度,从原始库中抓取最新以保持进度。
 
 
  
  我们现在可修改己文件,添加自己的组队和选题等相关信息,完成后进行提交操作,push到我们的fork项目主页中
 
 
 
 
  在push的操作过程中,要注意输入自己的github帐号和密码(由于自己的疏忽,直接将输入用户名过程回车略过,导致在验证密码的时候发生错误,显示匿名账户,经改正后完成)
 
 
  然后我们通过pull request操作等待开发者merge,在此过程中要注意,你是否和主仓库产生conflict,如果产生,你需要更新同步主仓库,如果没有,你只需等待邮件通知结果即可。
 
 
  下面是我组添加的信息
 
 
   并且我们需创建项目仓库地址,用于实验
 
 
 
 等待实验后续......

 

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