zoukankan      html  css  js  c++  java
  • 结对作业——web四则运算

    目录:

    一、Coding.net项目地址

    二、PSP

    三、接口设计

    四、接口实现

    五、性能分析

    六、单元测试

    七、异常处理

    八、模块设计

    九、模块对接

    十、结对

    十一、思考

    十二、PSP

    网站:http://ali.hellowood.com.cn:8089/ 出题做题都能实现,如果生成题目太多,可能会有延迟

    Coding仓库地址: https://git.coding.net/librarian1/Operation_Generation_Validate.git

    二、十二、PSP

    PSP

    任务内容

    计划时间(min)

    完成时间(min)

    Planning

    计划

    30

    60

         Estimate

        估计这个任务需要多少时间,并规划大致工作步骤

    30

    60

    Development

    开发

    60*36

    60*60

        Analysis

        需求分析

    60

    60

        Design Spec

        生成文档

    0

    0

        Design Review

        设计复审

    2*60

    4*60

        Coding Standard

        代码规范

    10

    15

        Design

        具体设计

    12*60

    18*60

        Coding

        具体编码

    16*60

    30*60

        Code Review

        代码复审

    4*60

    6*60

        Test

        测试

    15

    60

    Reporting

    报告

    5.5*60

    9*60

        Test Report

        测试报告

    60

    0

        Size Measurement

        计算工作量

    30

    60

       Postmortem& ProcessImprovement Plan

        事后总结, 并提出过程改进计划

    4*60

    8*60

    三、接口设计

    1、Information Hiding

    信息隐藏是指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。

    信息隐藏原理框图:

    2、Interface Design、Loose Coupling

    接口设计和低耦合是相辅相成的,接口化设计能大大降低程序的耦合度,低耦合一定离不开接口化设计。

    我们将出题功能与做题功能设计成了2个类:为每一个具体的出题参数设计一个接口,在生成题目的generation类中实现这些接口,并且对这个类进行封装;实现松耦合接口可以由具体类generation和validate直接实现,而不需要改变依赖类interface,使得软件设计具有可扩展性。

    四、接口实现

    本次界面程序的调用关系如下图:

    我们一共设计了5个类,分别为interface、Generate、Validate、Node、strOperating。

    六、单元测试

     用Junit4对generation类和validate类中每一个方法进行单元测试,后来决定用简单的assert断言来编写测试,并且遵照了一部分单元测试的原则。

    七、异常处理

    对于题目数量,数值范围,运算符数量和题目要求输入等四个接口分别设计了异常。
    异常写在了枚举类enum里面,然后在页面输入那些题目要求的时候会对每个输入框进行判断,如果有异常会走后台的方法输出异常

    -    EXCEPTION_TITEL_NUMBER  
    未设置题目数量或题目数量不符合规定
    -    EXCEPTION_NUMBER_RANGE
    未设置数值范围或数值范围不符合规定
    -    EXCEPTION_SIGN_NUMBER
    未设置运算符数量或运算符数量不符合规定
    -    EXCEPTION_SIGN_NUMBER
    题目要求未提交
     

    八、模块设计

    <head
            <meta charset="UTF-8">
            <title>四则运算题目</title>
            <link href="css/main.css" rel="stylesheet" />    
            <script src="js/jquery-3.2.1.min.js" type="text/javascript"></script>
            <script type="text/javascript">
            /*计时器*/    
            function two_char(n) {
                return n >= 10 ? n : "0" + n;
            }
            function time_fun() {
                var sec=0;
                setInterval(function () {
                    sec++;
                    var date = new Date(0, 0)
                    date.setSeconds(sec);
                    var h = date.getHours(), m = date.getMinutes(), s = date.getSeconds();
                    document.getElementById("mytime").innerText = two_char(h) + ":" + two_char(m) + ":" + two_char(s);
                }, 1000);
            }
            /*弹窗*/
            $(function() {
                $(".button").click(function(){
                    var $p=$("<p>3</p>");
                    var p_txt=$p.text();
                    var $h2=$("h2")
                    var h2_txt=$h2.text();
                    $(".mainone").remove();
                    $("h1").after(p_txt)
                    $("h1").after("<h3>正确题目数:</h3>")
                    $("h1").after(h2_txt)
                    $("h1").after("<h3>此次所用时间:</h3>")
                });
            });
             
            </script>
        </head>

    十、结对

    在结对的过程中,我和我的伙伴,也就是我的舍友,我们之间有很多愉快和不愉快的事情,意见不统一,项目也存在很多问题,但经过两个人的磨合,我们也算收获到很多东西,很感谢我的伙伴这段时间以来给予我的帮助和配合,感谢她帮了我很多东西,也很感谢我朋友给予我的帮助。

    说一说我的小伙伴吧,她是一个南方女孩,在这么多天,包括这两年的接触中,我总结一下她的优点和缺点吧。

    优点:很自律,很有时间观念,喜欢钻研一个东西,喜欢思考比较有挑战的问题,不畏惧难题,

    缺点:太钻牛角尖,不懂得变通,在完成一个任务的过程中不喜欢接收别人的帮助,喜欢单打独斗,不注重团队合作。

    最后说说自己的优缺点:

    优点:做事果断,有主见,有领导能力,行动力强。

    缺点:缺乏耐心,不够细心,比较浮躁,无法集中注意力。

    十一、思考

    总之很感谢这段时间的合作,我们在这次结对作业中都收获了很多东西,学会了处理问题的办法,独立思考,互相帮助。

    结对编程的缺点:

    1、对于有不同习惯的编程人员,可以在起工作会产生麻烦,甚至矛盾。

    2、有时候,程序员们会对一个问题各执己见(代码风格可能会是引发技术人员口水战的地方),争吵不休,反而产生重大内耗。

    3、两个人在一起工作可能会出现工作精力不能集中的情况。程序员可能会交谈一些与工作无关的事情,反而分散注意力,导致效率比单人更为低下。

    4、结对编程可能让程序员们相互学习得更快。有些时候,学习对方的长外,可能会和程序员们在起滋生不良气氛一样快。比如,合伙应付工作,敷衍项目

    5、面对新手,有经验的老手可能会觉得非常的烦躁。不合适的沟通会导到团队的不和谐。

    6、新手在面对有经验的老手时会显得非常的紧张和不安,甚至出现害怕焦虑的的精神状态,从而总是出现低级错误,而老手站在他们后面不停地指责他们导致他们更加紧张,出现恶性循环。最终导致项目进展效率低下,并且团队貌合神离。

    7、有经验的人更喜欢单兵作战,找个人来站在他背后看着他可能会让他感到非常的不爽,最终导致编程时受到情绪影响,反而出现反作用。 

    结对编程的优点:

    1、程序员互相帮助,互相教对方,可以得到能力上的互补。

    2、可以让编程环境有效地贯彻Design。

    3、增强代码和产品质量,并有效的减少BUG。

    4、降低学习成本。一边编程,一边共享知识和经验,有效地在实践中进行学习。

    5、在编程中,相互讨论,可能更快更有效地解决问题。

  • 相关阅读:
    EOS之session的数据获取
    c# 数据库操作之ACCESS
    基础之创建与导出
    dotNET5的MVC页面传值方式总结
    dotNET开发之MVC中Controller返回值类型ActionResult方法总结
    C# 计算农历日期方法(2021版)
    普通邮箱设置客户端授权码并开启stmp服务以及关于QQ邮箱“命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !”问题全指导
    13 张图,深入理解 Synchronized
    Springboot 注解大全
    python中的print()函数的学习-1
  • 原文地址:https://www.cnblogs.com/mayue-/p/8768455.html
Copyright © 2011-2022 走看看