1、课堂上,李巍老师给了我们一个结对项目的练习:
某公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道(100以内)四则运算题目给小学生做。二柱立马就想到写一个小程序来做这件事。 这个事情可以用很多语言或者工具来实现:
Excel、C/C++、Java、C#、VB、Unix Shell、Vbscript、Javascript、Perl、 Python、…
2、我的队友博客地址:
http://www.cnblogs.com/liushilin/
结对编程照片:
结对编程照片:
3、拿到这道题的时候,我们都觉得用循环,产生随机数就可以实现。我看着他编写,在看队友编写的时候,萌发了很多想法,都是些细节,比如说产生随机数,会有重复的情况,应该怎么去解决呢,讨论之后,找出了一个解决方案:将随机数设为静态变量,这样就不会出现重复的题目;如果是除法,那么除数不能为零,这个也是需要考虑到的,当为除法时,单独判断一下除法是否为零即可。
4、感想:
每人在各自独立设计、实现软件的过程中不免要犯这样那样的错误。在结对编程中,因为有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就会少得多,程序的初始质量会高很多,这样会省下很多以后修改、测试的时间。
结对项目的好处有:
结对项目的好处有:
(1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。
(2)对开发人员自身来说,结对工作能让自己的工作更有意义,不会陷入一个人孤军奋战的想法中。
(3)在心理上, 当有另一个人在你身边和你紧密配合, 两个人都会考虑对方的感受,比单独做更有责任感。
(4)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已经被其他人共享。
(5)在项目上,结对工作可以融合两个人的想法,可以避免一些低级的错误,使整个开发过程更加的高效; 如果运用得当,结对编程能得到更高的投入产出比。
(5)在项目上,结对工作可以融合两个人的想法,可以避免一些低级的错误,使整个开发过程更加的高效; 如果运用得当,结对编程能得到更高的投入产出比。
对于李巍老师新颖、开放的教学方式,我非常喜欢,虽然这门课程很枯燥,但是老师给了我们*讨论的空间和时间,这是我们大家都非常喜欢的一种教学方式。
5、由于之前的博文不太完整,现在重新贴代码,结果以及结对编程图片。
6、下面附上我和队友结对编程的代码以及结果:
代码:
package com.chunchuner.fourcompute; import java.util.Random; public class C { // private String []operations = {"+","-","*","/"}; 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); } }
结果: