• 关于项目“结对编程”的分析与心得


    学习进度条:

    在上周的软件工程课程中,老师给了我们一个编程项目的练习:

      某公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道(100以内)四则运算题目给小学生做。二柱立马就想到写一个小程序来做这件事。 这个事情可以用很多语言或者工具来实现:

    •Excel、C/C++、Java、C#、VB、Unix Shell、Vbscript、Javascript、Perl、 Python、…

    结对编程成员:肖启祥 2013110441         席胜 2013110441
     
    对方博客地址:http://www.cnblogs.com/ShengXi-1994/
     
    编程贡献比例:1:1
     
    结对编程照片:
     
    刚拿到这道题的时候,我们大家都觉得题目很容易理解,很简单,心中立刻涌现出一大堆算法设计思路,什么循环,产生随机数,数组存储等等。于是和小组的成员立刻结对准备入手写代码,但在与此同时就出现了一些细节的讨论,比如说产生随机数,可能会有重复题目的情况,而且题目要求只需要出题,而不是像计算器一样算出答案。还有各种类的接口如何实现等等问题,经过讨论之后,队友提出将随机数设为静态变量,这样就不会出现重复的题目。还有一个问题就是除法运算中除数不能为0的判断。这些随之即来的问题也突然中断了我们天真的想法,所以开始重视并认真讨论起来。经过一系列的讨论,我和室友开始决定编程实现这道题目的要求。
     
    结对编程代码:
     package com.shengxi.math;

    import java.util.Random;

    public class MyMath {

        private static int num1;
        private static int num2;
        private static String operation;
        private static String[] ptr = {"+","-","×","÷"};
        private static final int NUMBER = 100;   
        
        public static void main(String[] args){
        
            Random rand =new Random();  
            
            for(int i=1;i<=30;i++){
             //随机获取数字和符号
                num1=rand.nextInt(NUMBER);
                num2=rand.nextInt(NUMBER);
                operation=ptr[rand.nextInt(4)];
                
                //去除除数为0
                if(operation.equals("÷")){
                 if(num2==0){
                 num2= rand.nextInt(NUMBER);
                 }
                    
                }
                
              
                if(i<10){
                    System.out.println(num1+operation+num2+"=");
                }else
                    System.out.println(num1+operation+num2+"=");
            }
            
        }  
        

    }
     
    输出结果:
     
      结对编程项目的好处有:
         1、两人一组编程可以互相帮助,探讨问题,更高效的解决问题;
         2、可以通过学习队友编程方面好的地方,弥补自己的不足;
         3、在调试过程中两个人也更容易发现BUG并合理解决BUG;
         4、结对编程可以互相督促和修正自己认为对方不足的地方,同时也学习和他人共享编程经验;
         5、可以更有效地模拟以后团队开发项目的工作环境,使自己对团队开发过程更加理解和熟悉。

        结对编程心得:按两人一组结对尝试对项目开始进行编程。起初无从下手,和室友讨论了许久。并通过网络和相关书籍等途径查找了很多类似的资料。至此,我们关于项目的结对编程就更加理性化了,这样统一了命名规则和思想后,效率也有所提高。总而言之,这次的“结对编程”给了我很多启发,这个过程中遇到的问题以及解决的办法也让我受益匪浅,我明白了结对编程分工与合作有机协调的重要性。在和别人交流的过程之中,言简意赅的表达自己的思路或者想法,也提高了自己的语言交际能力。编程中自己有不规范的地方也经过室友的提示得到了规范,也深刻明白了取长补短的益处,看到别人对同样的问题有更好的解决办法后,自己也学到了这些知识。所以,对于一个结对编程开发项目,两人之间不仅有相互督促也有相互进步。组队编程明确需求是基础,提高效率是关键,互相帮助才是根本。

     That's all,thank you for reading my blogs.

     

  • 相关阅读:
    webbench之使用(二)
    webbench之编译安装(一)
    Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
    OneThink开发框架
    性能瓶颈调优
    Jmeter之Web端HTTP性能测试(九)
    RobotFramework自动化测试之脚本编写(一)
    LoadRunner之安装、破解、汉化教程(一)
    Java学习之Thread方法
    Java学习之线程通信(多线程(Lock))--生产者消费者
  • 原文地址:https://www.cnblogs.com/xiaoqixiang/p/5306631.html
Copyright © 2020-2023  润新知