轻谈“结对编程”

 1.问题描述

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

2.结对编程代码如下:

package com.wangzuying.jieduibiancheng;

import java.util.Random;

public class AutoGetProject {

private static Random random = new Random();
private final static int COUNT = 30;

private static boolean getProject() {
int num1 = random.nextInt(101);
int num2 = random.nextInt(101);
int index = random.nextInt(4);
String str = "";
boolean flag = false;
int answer = 0;
switch (index) {
case 0:
answer = num1 + num2;
if (answer > 100) {
break;
}
str = num1 + "+" + num2 + "=";
flag = true;
break;
case 1:
if (num1 < num2) {
break;
}
str = num1 + "-" + num2 + "=";
flag = true;
break;
case 2:
answer = num1 * num2;
if (answer > 100) {
break;
}
str = num1 + "*" + num2 + "=";
flag = true;
break;
case 3:
if (num2 == 0) {
break;
}
str = num1 + "÷" + num2 + "=";
flag = true;
break;
}
if (flag) {
System.out.println(str);
}
return flag;
}

public static void main(String[] args) {
System.out.println("随机得到的30道四则运算题目如下:");
int count = 0;
do {
if (getProject()) {
count++;
}
} while (count < COUNT);
}

}

 3.运行结果

 

4.心得体会

第一次听说“结对编程”,初听起来,颇为有趣实际操作起来,才发现诸多漏洞。俗话说:“站在岸上学不会游泳!”,

当你真的动手去做了,必定有收获。

      根据对李老师讲述的理解,带着好奇,揣着乐趣找个队友便开始我们的“结对编程”之旅。队友编程能力较强些,她

负责敲代码,我负责在她编码同时查看是否出错。再者,我们必须先进行沟通,我们即将实现什么样的功能?如何实现?

甚至细化到用什么类来实现,需要什么返回类型。

  首先结对项目的好处有:
  (1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。
  (2)对开发人员自身来说,结对工作能让自己的工作更有意义,不会陷入一个人孤军奋战的想法中。
  (3)在心理上,  当有另一个人在你身边和你紧密配合, 两个人都会考虑对方的感受,比单独做更有责任感。
  (4)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已
             经被其他人共享。
  (5)在项目上,结对工作可以融合两个人的想法,可以避免一些低级的错误,使整个开发过程更加的高效; 如果运用
             得当,结对编程能得到更高的投入产出比。

      我觉得每人在各自独立设计、实现软件的过程中不免要犯这样那样的错误。在结对编程中,因为有随时的复审和交流,

程序各方面的质量取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就会少得多,程序的初始质量会高

很多,这样会省下很多以后修改、测试的时间。

      经过这次结对编程后,收获良多。不仅认识了另一种编程方式,还深刻的体会到了,自己是很难意识到自己的错误的。

所以,可以把队友当成一面镜子,完善程序,也完善自己。

原文地址:https://www.cnblogs.com/wangzuying/p/5308070.html