一、作业要求
二、开发方式
这次结对开发由一位前端同学 吴同学 和一位后端同学 唐同学 选择 前后端分离 的方式进行项目开发。
我们首先确定了项目需求,选择用json格式传输数据,后端进行业务处理,前端进行页面渲染与数据显示。
三、项目流程
项目预览:
1.前端
- 开始出题页面
用户在该页面可以设定出题条件,点击开始出题后即有在线答题与下载题目两个按钮可供选择。
- 答题页面
本页面有计时功能,当用户选择提交时,将为根据它的答题情况进行提示,若没有答完题会有提示框提示是否确定提交,点击提交后即会立刻生成答题情况。
答题情况会显示学生的做题用时、正确题数以及正确率。
- 错题集页面
点击下面页面的查看答题情况按钮即可跳转至错题本页面,该页面会将用户提交的错误题目、错误答案以及正确答案都展示出来,如果用户之前提交的答案内容为空,则页面会显示错误答案为null。
2.后端
后端共有三层,五个类。
三层:controller(接口servlet)、entity(实体类)、tool(工具类)
五类:
- NewServlet 主要负责三个功能接口:出题,接收前台题目要求信息;下载文件;提交,返回答题详情。
- FeedBack 主要采用JavaBean装载错题集与正确答案。
- Calculator 计算答案
- New 生成算式
- NewFile 生成下载文件
项目细节:
1.接收前台传来的答案字符串,选择“,”为分隔符,对答案进行分割遍历,获得每一个具体答案。
2.选择调用fastjson,将结果值以json格式传输给前台进行解析。
测试地址:
3.项目部署
- 我们将项目部署在服务器上,方便测试与访问。
项目地址:http://188.131.244.33:8080/Work2/
- 用git上传到coding.net
项目地址:https://dev.tencent.com/u/TangGemini/p/Work2/git
四、接口文档
五、PSP
SP2.1 | 任务内容 | 计划共完成需要的时间(h) | 实际完成需要的时间(h) |
Planning | 计划23 | 23.5 | 41.5 |
· Estimate | · 估计这个任务需要多少时间,并规划大致工作步骤 | 1 | 1 |
Development | 开发 | 21.5 | 38.5 |
· Analysis | · 需求分析 (包括学习新技术) | 1 | 1 |
· Design Review | · 代码设计 | 2 | 3 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 0.5 | 0.5 |
· Design | · 具体设计 | 3 | 5 |
· Coding | · 在计算模块花费的时间 在UI模块花费的时间 在后台处理模块花费的时间 | 3 2 5 | 5 3 8 |
· Code Review | · 代码复审 | 2 | 3 |
· Test | · 测试(自我测试,修改代码,提交修改) | 3 | 10 |
Reporting | 报告 | 1 | 2 |
· Test Report | · 测试报告 | 0.2 | 1 |
· Size Measurement | · 计算工作量 | 0.5 | 0.5 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 0.3 | 0.5 |
六、项目总结
当看到这次结对项目的需求时,我们并没有觉得会有多艰难,但事实狠狠地打了我们的脸。计算类与页面设计的实现并没有多耗费我们的时间,真正的问题出现在前后端的数据对接上,参数要求不符,接口虽然是200状态,但后台实际上报了空指针的异常。总之,虽然选择了前后端分离的开发的模式,能提高个人的开发速度,但却很磨练前后端同学的配合程度。这次我们虽然是第一次合作,有出现些小的问题,但整体来说,在规定的时间很好地完成该项目,也提升了我们合作的默契,这将对之后的开发中带来宝贵的经验。虽然这次项目仍有很多不足,但我们会再接再厉!