zoukankan      html  css  js  c++  java
  • 结对编程第一阶段

    实验二     结对编程

    一、实验目标

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

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

    二 、实验内容

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

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

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

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

    三、实验过程

     1)查阅相关资料加深对敏捷开发和结对编程的理解: 

     敏捷开发:敏捷开发是一种从1990年代开始逐渐引起广泛关注的新型软件开发方法,是一种能应对快速变化需求的软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。 

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

     我觉得:一个人编程也可以实现系统功能,但是一个人做东西并不能想的那么全面,肯定会丢掉某些东西,导致系统功能的不完善,通过结对编程,我们就可以弥补这个不足,此外,结对编程的两个人也可以通过对方学到一些东西,来提升自己的能力。通过结对编程,通过角色互换,相信我们可以写出更的代码。

     2)组队情况

    队伍名称

    队员

    博客地址

    GitHub仓库地址

    选择课题

    XYZ

    王慧

    https://www.cnblogs.com/1234wh/

    https://github.com/yqw0710/wyzproject

    生命游戏

    叶啟文

    https://www.cnblogs.com/yqw0710/


     3)资料查阅与课题理解   

    (1)共同理解
        生命算法原理:
         a.生命细胞只有两种状态:“生”或“死”。
         b.开始时,随机设定为生或死。0表示死、1表示生。
         c.细胞下一状态由该周围8个细胞的上一生命状态决定。
           周围有三个活细胞,则为生。(状态赋值为1)
           周围有两个活细胞,则保持。(状态不变)
           其他情况,则为死。(状态赋值为0)

     (2)如何搭建界面
        用Python可视化创建一个地图,用白色显示活细胞,用黑色显示死细胞。

     (3)需要实现的功能

          a.初始化地图:开始游戏时,对地图上的细胞随机赋值为0或1。
          b.绘制地图:绘制一个N*M大小的地图。
          c.细胞下一状态计算:计算周围活细胞的个数,更新该细胞的生命 状态。
          d.主函数:运行生命游戏。
     (4)开发平台和技术工具选择

       我们对:C、Java、Python三种语言进行了讨论,最终选择了Python语言。
         a.由于参考用C语言写的生命游戏算法后,我们发现虽然C语言实现比较简单,但是对于整个地图每一个状态都需要重新回到原点开始打印,而Python
    使用animation模块,可以达到动态图的效果,这样效率更高,界面动态更为流畅。
         b.由于我们组成员对Python和Java的编程能力都不是很熟练,在对二者基础知识进行复习后,我们一致认为Python更好理解,上手更快。
       所以我们最终选择了用Python语言,开发技术工具选择了pycharm。

    (5)如何结对与切换角色
         a.我们用GitHub托管我们的代码,利用QQ屏幕分享功能进行结对编程。
         b.一个人写代码另一个人监督,然后将写好的代码放置在GitHub上托管。

    4)收获

         第一次结对编程,有些缺乏经验,但是我的结对小伙伴很给力、很棒,突然觉得结对编程是个很不错的方式,让我学到了许多东西,在考虑一个问题时,如何去思考和分析?通过结对编程,让我知道了别人思考问题的方式,通过学习,找到自己的不足和缺点,然后进行改正,在今后做东西,想的东西更加全面,如何更好地去对一个问题进行分析。通过此次实验,通过两个人的合作,通过两个人角色的互换,通过两个人不断地讨论,我相信最终实现的不仅仅是一个生命游戏,更是两个人能力的提升,还有合作精神的提高,这对我们以后肯是有许多好处的。

     5)参考文献:

       1.python实现生命游戏:https://blog.csdn.net/zjhysj/article/details/80542565
       2.Matplotli绘图库的基础知识:https://www.runoob.com/numpy/numpy-matplotlib.html
       3.Python Matplotlib简易教程: https://blog.csdn.net/Notzuonotdied/article/details/77876080
       4.Matplotlib 画动态图: animation模块的使用:https://blog.csdn.net/u013180339/article/details/77002254
       5.Python 字典(Dictionary):https://www.runoob.com/python/att-dictionary-values.html

     四、结对过程记录 

       1)项目仓库

       2)QQ屏幕分享过程

      

     

  • 相关阅读:
    day5-Python学习笔记(九)json数据类型
    day5-Python学习笔记(八)内置函数
    day4-Python学习笔记(七)函数与模块
    day4-Python学习笔记(六)监控日志,集合数据类型
    day4-Python学习笔记(五)文件读写,文件内容修改
    day3-python学习笔记(四)字符串方法
    day3-python学习笔记(三)字典、元组
    day3-python学习笔记(二)list(数组)
    变量
    网络编程
  • 原文地址:https://www.cnblogs.com/1234wh/p/12542688.html
Copyright © 2011-2022 走看看