在课程学习过程中,老师叫我们进行两人合作,结对编程,写一个小程序,模拟体验一下结对编程。
正好我在《构建之法》上看到关于结对编程的介绍。这本书上说,用结对编程开发方法的原因是,在程序代码完成后,需要进行代码复审,由复审者对开发者提出一系列问题,开发者负责解释回答。代码复审有很多好处,比如找出代码的错误,发现逻辑、算法错误、潜在的错误和回归性错误,互授开发经验等。既然代码复审有这么多的好处,那能不能把它每时每刻都用上它呢?结对编程做到了,结对编程让开发者每时每刻处在代码复审的状态,及时纠正错误,代码质量更高。
结对编程是这一思想的体现——把卓有成效的开发方法用到极致,让我们无时不刻的使用它们。极限编程也出自这一思想。
结对编程的时候,另一程序员坐于身旁,检查阅读你的代码,及时发现你的错误。虽然我们大都喜欢一个人写程序,不喜欢身旁坐着个人,但是毕竟写程序是个逻辑思考的过程,很容易犯错误,有另一个人,他/她就能从另一角度出发找出你忽视的错误,及时更正,避免日后更大的损失。另一个程序员好像一个副驾驶,他/她是起帮助你的作用的,不是来捣乱的,也不是领导,你们的地位是平等的,可以平等交流工作内容。结对过程中,还可以轮班干,因为开发过程中,旁边一人完全陪着你走完整个程序的,他/她当然清楚整个程序的框架和细节,也省去了费心解释的时间。
总之,结对编程也是众多开发方法中的一种,它有它的适用范围,也有它的限制。我们只要根据情境,选择最适合的方法就行了。
结对编程作业:
某公司程序员二柱的小孩上了小学二年级,老师让家长每天出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)小学二年级学生未接触负数,运算结果要保证不能为负;
学习进度条