• 结对编程----五子棋游戏


    需求分析:

    五子棋定义:

         《五子棋》是一款简单的五子棋小游戏,界面十分干净,而且具有多人作战以及战果记录等功能。五子棋的玩法把自己的棋子在横、竖、斜任意一个方向上连续排满5个就算赢。

    五子棋:

    功能:

    •   棋盘,输赢判断算法。
    •   能实现简单的人机对战。

    结对编程概述:

    定义:

          结对编程技术是指两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。

    概述:

          结对编程技术是一个非常简单和直观的概念,能达到事半功倍的工作效果。但是,人与人之间的合作不是一件简单的事情——尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。而另一方面,两个有经验的人可能会发现配对编程里没有什么技能的转移,但是让他们在不同的抽象层次解决同一个问题会让他们更快地找到解决方案,而且错误更少。

    两个程序员具有相同的缺点和盲点的可能性很小,所以当我们采用结对编程的时候会获得一个强大的解决方案。而这个解决方案恰恰是其它软件工程方法学中所没有的。
    在我们平时的编程当中,如果遇到一个非常难解决的问题(困难到对该项目产生厌烦的态度),那么你势必会希望录求帮助,无论是从信息量庞大的网上,还是从身边的技术大师那里,你都会努力去解决(前提是你有对计算机知识的热爱)。这个时候不妨采用结对编程试一下,其它的不说,可能感觉就不同。
     
    为什么要结对编程?

        每人在各自独立设计、实现软件的过程中不免要犯这样那样的错误。在结对编程中,因为有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就会少得多,程序的初始质量会高很多,这样会省下很多以后修改、测试的时间。具体地说,结对编程有如下的好处:

                  (1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。

                  (2)对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。

                  (3)在心理上,  当有另一个人在你身边和你紧密配合, 做同样一件事情的时候,  你不好意思开小差, 也不好意思糊弄。

                  (4)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已经被其他人共享。

                  总之,如果运用得当,结对编程能得到更高的投入产出比(Return of Investment)。

    结对编程的角色分配:

         结对编程中有两个角色:

              (a)驾驶员(Driver)是控制键盘输入的人。

              (b)领航员(Navigator)起到领航、提醒的作用。

    这两个角色是可以互换的。和现实生活中的例子类似,一个人负责具体的执行(驾驶,用键盘编辑程序等),另一人负责导航、检查、掩护等。

    正式编写:

    代码编写规范:

    1. 类名首字母应该大写。属性(成员变量)、方法、对象变量以及所有标识符(如形式参
        数、实际参数、局部变量)的首字母应小写,其中包含的所有单词都应紧靠在一起,而
       且大写中间单词的首字母。
           例如:类名:HomeWorkClass  属性或方法名:homeWorkClass

    2. Java 包(Package)属于一种特殊情况,它们全都是小写字母,即便中间的单词亦是如
        此。对于全局包,将你的 Internet 域名反转并接上包名,
           例如:cn.qilu.homework

    3. 接口(Interface):采用完整的英文描述符说明接口封装,所有单词的第一个字母大
        写。习惯上,名字后面加上后缀 able, ible 或者 er。
           例如:Contactable,Prompter。
    4. 组件(Component)使用完整的英文描述来说明组件的用途,末端应接上组件类型,并且应以驼峰法命名。
           例如:okButton,customerList,fileMenu。
    5. 类中常用方法的命名:
           (1)类的获取方法(一般具有返回值)一般要求被方法名使用被访问字段名,前面加上
               前缀get,如getFirstName(), getLastName()。

           (2)  类的布尔型的判断方法一般要求方法名使用单词 is 做前缀,如isPersistent(),
                isString()。或者使用具有逻辑意义的单词,例如equal 或equals
           (3)类的设置方法(一般返回类型为void):被访问字段名的前面加上前缀 set,如
              setFirstName(),setLastName()。
           (4)类的普通方法一般采用完整的英文描述说明成员方法功能,第一个单词尽可能采用
              一个生动的动词,第一个字母小写,如 openFile(), addAccount()。

    6.  静态常量字段(static final)一般全部采用大写字母,单词之间用下划线分隔

           例如: HOME_WORK

    驾驶员和领航员的角色互换过程:

        1. 棋盘界面设计: 

         领航员: 周晓红

         驾驶员: 张琦霞

        2 输赢判断规则算法:

         领航员: 张琦霞

         驾驶员: 周晓红

         3 输赢提示弹窗:

         领航员 :周晓红

         驾驶员: 张琦霞

     

     

    心得体会:

    结对编程确实有很多优点

    1. 程序员互相帮助,互相教对方,可以得到能力上的互补。
    2. 可以让编程环境有效地贯彻Design。
    3. 增强代码和产品质量,并有效的减少BUG。
    4. 降低学习成本。一边编程,一边共享知识和经验,有效地在实践中进行学习。
    5. 在编程中,相互讨论,可能更快更有效地解决问题。

     

     

     

     

     

  • 相关阅读:
    redis命令参考(四) set集合
    redis命令参考(三) List列表相关
    redis命令参考(二)
    redis命令参考(一) SortedSet相关
    insert_into_on_dumplicate_key
    laravel深入分析
    开发中GBK+UTF8编码的处理
    ajax封装调用
    linux正则表达式的用法
    linux 如何保证使程序后台运行(nohup &)
  • 原文地址:https://www.cnblogs.com/zxhong/p/4818105.html
Copyright © 2020-2023  润新知