zoukankan      html  css  js  c++  java
  • 我的结对项目编程感想

    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、由于之前的博文不太完整,现在重新贴代码,结果以及结对编程图片。

    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);
        }
    
    }

    结果:

  • 相关阅读:
    软件工程师的悲哀
    关于ControlTemplate 2
    DataTemplate总结2(学习)
    ObjectiveC——类
    6 Popular Ideas That Fail
    Develop Cross Platform Mobile App
    DP 与 DO(学习)
    Titanium颜色总结
    Illustrator Tips
    Titanium API
  • 原文地址:https://www.cnblogs.com/chunchuner/p/5306742.html
Copyright © 2011-2022 走看看