• 结对编程的总结


       在课程学习过程中,老师叫我们进行两人合作,结对编程,写一个小程序,模拟体验一下结对编程。

      正好我在《构建之法》上看到关于结对编程的介绍。这本书上说,用结对编程开发方法的原因是,在程序代码完成后,需要进行代码复审,由复审者对开发者提出一系列问题,开发者负责解释回答。代码复审有很多好处,比如找出代码的错误,发现逻辑、算法错误、潜在的错误和回归性错误,互授开发经验等。既然代码复审有这么多的好处,那能不能把它每时每刻都用上它呢?结对编程做到了,结对编程让开发者每时每刻处在代码复审的状态,及时纠正错误,代码质量更高。

      结对编程是这一思想的体现——把卓有成效的开发方法用到极致,让我们无时不刻的使用它们。极限编程也出自这一思想。

      结对编程的时候,另一程序员坐于身旁,检查阅读你的代码,及时发现你的错误。虽然我们大都喜欢一个人写程序,不喜欢身旁坐着个人,但是毕竟写程序是个逻辑思考的过程,很容易犯错误,有另一个人,他/她就能从另一角度出发找出你忽视的错误,及时更正,避免日后更大的损失。另一个程序员好像一个副驾驶,他/她是起帮助你的作用的,不是来捣乱的,也不是领导,你们的地位是平等的,可以平等交流工作内容。结对过程中,还可以轮班干,因为开发过程中,旁边一人完全陪着你走完整个程序的,他/她当然清楚整个程序的框架和细节,也省去了费心解释的时间。

      总之,结对编程也是众多开发方法中的一种,它有它的适用范围,也有它的限制。我们只要根据情境,选择最适合的方法就行了。

    分隔线

    结对编程作业:

      某公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道(100以内)四则运算题目给小学生做。

      结对对象:屈玉娟  博客地址:http://www.cnblogs.com/yjuar/

      双方贡献比例:1:1

      结对照片:

      

      代码:

     1 package com.software.qy;
     2 import java.util.Random;
     3 
     4 public class Operation {
     5     private int num1;
     6     private int num2;
     7     private String operation;
     8     private    String[] oper = {"+","-","×","÷"};
     9        
    10     public static void main(String[] args){
    11         Operation Operation=new Operation();
    12         Random rand =new Random();
    13         System.out.println("以下为100以内的30道运算题:");
    14         
    15         for(int i=1;i<=30;i++){
    16             Operation.num1=rand.nextInt(100);
    17             Operation.num2=rand.nextInt(100);
    18             Operation.operation=Operation.oper[rand.nextInt(4)];
    19             
    20             /*当产生减法时,不能为负数*/
    21             if(Operation.operation=="-"){
    22                 if(Operation.num1<Operation.num2){
    23                     int temp;
    24                     temp=Operation.num1;
    25                     Operation.num1=Operation.num2;
    26                     Operation.num2=temp;                                      
    27                 }
    28                 
    29             }
    30             
    31             /*产生除法时,除数不能为零*/
    32             if(Operation.operation=="÷"){
    33                 Operation.num2=Operation.divide(Operation.num2); 
    34             }
    35             
    36             //输出30个运算题
    37             if(i<10){
    38                 System.out.println("0"+i+":"+" "+Operation.num1+Operation.operation+Operation.num2+"=");
    39             }else
    40                 System.out.println(i+":"+" "+Operation.num1+Operation.operation+Operation.num2+"=");
    41         }
    42         
    43     }  
    44     
    45     public int divide(int divisor){
    46         if(divisor==0){
    47             divisor=divisor+1;
    48         }
    49         return divisor;
    50     }
    51 }

      运行结果:

    //注意:(1)四则运算式要满足除法规则; (2)小学二年级学生未接触负数,运算结果要保证不能为负;

    学习进度条

  • 相关阅读:
    node中__dirname、__filename、process.cwd()、process.chdir()表示的路径
    formidable模块的使用
    对象函数的readFileSyc类
    nodejs的事件驱动理解
    书籍类
    Cookie的弊端
    Codeforces 1015 E(模拟)
    Codeforces 1015D(贪心)
    牛客网暑期ACM多校训练营(第五场)I(树状数组)
    2018牛客暑假多校第五场 A(二分答案)
  • 原文地址:https://www.cnblogs.com/xiayi/p/5315706.html
Copyright © 2020-2023  润新知