zoukankan      html  css  js  c++  java
  • 结对项目

    写在最开始:

             在这里我想特别感谢我的搭档,王玉同学,如果没有同伴,我估计已经进精神病院了。

             首先不得不说,两个搞前端的菜鸡结对绝对是个错误。当我们大眼瞪小眼地看着报错信息的时候,我感到了绝望。后端知识的匮乏导致时间不协调,前端都没做好。

    而写着博客的我,现在依然是崩溃的,短短两周,学了GUI,学了数据库,但是依然不够,毕竟智商这东西,我发现它是学不来的。

    这次作业让我感觉到清明节应有的悲伤。在此祭奠我逝去的头发和脑细胞。

    一、    代码地址

    1、 coding.net地址:https://git.coding.net/sikiqk/teamworkassis.git

     

    2、 url测试地址:http://localhost:8080/index.jsp

    二、psp表格

    PSP2.1

    任务内容

    估计需要完成的时间

    (张慧)(min)

    估计需要完成的时间

    (王玉)(min)

    Planning

    计划

    30

    30

    ·        Estimate

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

    30

    30

    Development

    开发

    300

    300

    ·        Analysis

    ·         需求分析 (包括学习新技术)

    120

    120

    ·        Design Spec

    ·         生成设计文档

    20

    20

    ·        Design Review

    ·         设计复审 (和同事审核设计文档)

    0

    0

    ·        Coding Standard

    ·         代码规范 (为目前的开发制定合适的规范)

    45

    45

    ·        Design

    ·         具体设计

    90

    90

    ·        Coding

    ·         具体编码

    360

    360

    ·        Code Review

    ·         代码复审

    60

    60

    ·        Test

    ·         测试(自我测试,修改代码,提交修改)

    240

    240

    Reporting

    报告

    60

    60

    ·         Test Report

    ·         测试报告

    0

    0

    ·         Size Measurement

    ·         计算工作量

    24*2

    24*4

    ·         Postmortem & Process Improvement Plan

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

    120

    120

     

    三、Information Hiding, Interface Design, Loose Coupling

     对于面向对象的程序设计而言,信息隐藏是一种重要的软件开发手段,它与对象的封装(encapsulation)与模块化(modularity)密切相关。在我看来,信息隐藏使得一个类把复杂的、敏感的、一旦被外界捕获可能会引起不良后果的内容封装在自身内部,这个类以外的代码得不到此类信息(通过反射等手段可能对得到),以提高程序的安全性与健壮性。

    资料链接:https://blog.csdn.net/gongchuangsu/article/details/53895916
    interface design与loose coupling
    我个人感觉,这两个概念是相辅相成的,后者是前者的目的,前者是后者的实现手段。  面向接口编程是软件工程领域常用的设计手段,这对于一个团队而言,也是非常重要的,在做一个团队项目时,有人可能负责领域模型M(Model),有人负责前台V(View),有人负责业务逻辑C(Controller),在这种MVC的设计模式驱动下,我们首先想到的就是:定义一套公共的接口,方便各个模块之间的通讯。面向接口的程序设计思想是一种有效的手段。比如一个做业务逻辑的Team,他们并不清楚业务数据的CURD实现,但他们只要通过面向于数据组提供的一整套接口进行编程即可,同时,数据组的开发可以并行进行,这样,不需要等待一个模块的完成就可以预先“使用”这个模块,极大的提高了团队的效率
    而对于loose coupling(松耦合),它现在几乎已经与interface design等价了,很多项目中,loose coupling就是interface design,虽然向Spring等模块提供了IOC(Inverse of Control)等更高端的方法,但这些还是基于面向接口编程的。
    资料链接:https://www.cnblogs.com/magiccode1023/archive/2012/10/23/2736257.html

    4)计算模块接口的设计与实现过程。

    session变量有:fanwei(出题范围)、tishu(题目数)。

    index.jsp从用户获得fanwei、tishu和题目类型,传到xuanze.jsp进行处理,xuanze.jsp将fanwei和tishu设为全局变量,并根据题目类型重定向到ZSAssis.jsp、YSCFAssis.jsp或KHAssis.jsp,三个页面接收题目数和出题范围输出题目并用eval()函数进行计算,并记录页面时间,将正确结果和用户答案储存在数据库中并分别比较,得到正确题目数并设为全局变量,在result.jsp中反馈给用户正确题目数和答题时间。

    
    
    (1)    介绍求最大公约数与最小公倍数的方法的博客连接:https://blog.csdn.net/tingzhiyi/article/details/52058710
    (2)    介绍检测输入的重复数据博客链接:
    https://blog.csdn.net/carolcoral/article/details/78745159

    6)计算模块部分单元测试展示。展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路。并将单元测试得到的测试覆盖率截图,发表在博客中。只需要测试命令行部分,且该部分覆盖率到90%以上,否则单元测试部分视作无效。(6')

    单元测试与覆盖率https://www.cnblogs.com/xiongmaopanda/p/3314660.html

    IntelliJ IDEA单元测试入门https://blog.csdn.net/u011138533/article/details/52165577

    单元测试流程(使用IntelliJ IDEA)

    1、        创建新的项目

    2、        创建一个新的类用于测试()

    3、        创建测试源根目录

    4、        创建一个测试类(IntelliJ IDEA提供了一个快捷操作Cmd + Shift + T作为类和测试之间的导航。同时允许用户在那里创建一个测试类。)

    选择JUnit 4作为单元测试库。IntelliJ IDEA将提供到件这个库添加到模块中。

    5、        运行测试(可以通过右键菜单在这个类上运行'MyClassTest'来进行测试)

    6、        收集覆盖(运行覆盖收集覆盖率,需要通过Run → Run 'MyClassTest' with Coverage或工具栏上的选项运行特定模式的测试。)

    7)计算模块部分异常处理说明。在博客中详细介绍每种异常的设计目标。每种异常都要选择一个单元测试样例发布在博客中,并指明错误对应的场景。(5')

    8)界面模块的详细设计过程。在博客中详细介绍界面模块是如何设计的,并写一些必要的代码说明解释实现过程。(5')

    界面展示

    Login界面

     

    通过连接数据库,验证用户登陆。数据库名:sizeyunsuan

    Register界面

     

    注册信息储存于数据库内。

    四则运算生成器

     

     

    输入题目数选择数值范围与题目类型,session成全局变量,有利于后面的开发。选择了题目的类型,分别进入不同的界面。我们分三个界面输出不同的运算类型。

     

    答题界面

     

    将题目和答案储存于数据库中,再进行对比得到正确的题目数,用js的setInterval函数编写计时器,记录用户从页面打开开始到提交题目所用的时间即为答题时间。

     

    成绩界面

     

    从全局变量session中获得答对题目个数和答题时间,反馈给用户。

     

     

    九、界面模块与计算模块的对接。详细地描述UI模块的设计与两个模块的对接,并在博客中截图实现的功能。(4')

    在前端页面中嵌入后端代码,没有模块化,没有对接。

    十、结对照片

     

    十一、说明结对的优缺点

    优点

    (1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。

    (2)对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。

    (3)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已经被其他人共享。

    (4)结对编程的过程也是一个互相督促的过程,每个人的一举一动都在别人的视线之内,所有的想法都要受到对方的评价。由于这种督促的压力,使得程序员更认真地工作。结对编程“迫使”程序员必须频繁地交流,而且要提高自己的技术能力以免被别人小看。

    (5)结对编程让两个人所写的代码不断地处于“复审”的过程。复审是不断地审核,提高设计和编码质量的过程,这样能够及时地发现问题和解决问题,避免把问题拖到后面的阶段。

    (6)结对编程中驾驶员和领航员的互换可以让程序员轮流工作,从而避免出现过度思考而导致观察力和判断力下降。

    缺点

    (1)结对编程是一个相互学习、相互磨合的渐进过程。开发人员需要时间来适应这种新的开发模式。刚开始的结对编程很可能不比单独开发效率更高。

    (2)如果团队的人员要在多个项目中工作,不能充分保证足够的结对编程时间,那么成员要经常处于等待的状态,反而影响效率。

    (3)当两个人的技术水平或经验不均衡的时候,那么水平较弱或缺乏经验的一方往往会成为旁观者,或者需要对方给予一定的讲解,这无疑拖延了编程的进度。

    (4)当其中一人希望独自思考一段时间时,有可能会被认为是一种不合作的表现。

    评价

    姓名

    张慧

    王玉

     

    优点

    学习努力刻苦呕心沥血

    乐观

    在崩溃中容易找到希望

    容易沟通交流,容易合作

    鸡汤本人,在队友几欲想放弃的崩溃边缘用鸡汤解救队友,告诉她,分不重要,学到东西最重要。

    态度积极热爱学习

    缺点

    容易崩溃

    编程经验不足

     

    12)在你实现完程序之后,在附录提供的PSP表格记录下你在程序的各个模块上实际花费的时间。(1')

    PSP2.1

    任务内容

    实际需要完成的时间

    (张慧)(min)

    实际需要完成的时间

    (王玉)(min)

    Planning

    计划

    20

    20

    ·        Estimate

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

    0

    0

    Development

    开发

    1200

    1200

    ·        Analysis

    ·         需求分析 (包括学习新技术)

    360

    660

    ·        Design Spec

    ·         生成设计文档

    60

    60

    ·        Design Review

    ·         设计复审 (和同事审核设计文档)

    0

    0

    ·        Coding Standard

    ·         代码规范 (为目前的开发制定合适的规范)

    90

    90

    ·        Design

    ·         具体设计

    360

    360

    ·        Coding

    ·         具体编码

    1200

    1200

    ·        Code Review

    ·         代码复审

    600

    600

    ·        Test

    ·         测试(自我测试,修改代码,提交修改)

    1200

    1200

    Reporting

    报告

    30

    90

    ·         Test Report

    ·         测试报告

    0

    0

    ·         Postmortem & Process Improvement Plan

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

    90

    90

     

    如何用eclipse生成jar exe文件

    https://blog.csdn.net/luoweifu/artic

  • 相关阅读:
    pip不是内部或外部命令也不是可运行的程序或批处理文件的问题
    动态规划 leetcode 343,279,91 & 639. Decode Ways,62,63,198
    动态规划 70.climbing Stairs ,120,64
    (双指针+链表) leetcode 19. Remove Nth Node from End of List,61. Rotate List,143. Reorder List,234. Palindrome Linked List
    建立链表的虚拟头结点 203 Remove Linked List Element,82,147,148,237
    链表 206 Reverse Linked List, 92,86, 328, 2, 445
    (数组,哈希表) 219.Contains Duplicate(2),217 Contain Duplicate, 220(3)
    重装系统
    java常用IO
    端口
  • 原文地址:https://www.cnblogs.com/zhh2016/p/8763316.html
Copyright © 2011-2022 走看看