寒假作业(2/2)
这个作业属于哪个课程 | 2020春W班 |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | 1. |
作业正文 | .... |
其他参考文献 | csnd 博客园 github |
一、我的Github仓库地址
二、PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 50 |
Estimate | 估计这个任务需要多少时间 | 20 | 30 |
Development | 开发 | 960 | 1280 |
Analysis | 需求分析 (包括学习新技术) | 60 | 90 |
Design Spec | 生成设计文档 | 30 | 60 |
Design Review | 设计复审 | 40 | 45 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 20 | 30 |
Design | 具体设计 | 180 | 300 |
Coding | 具体编码 | 600 | 720 |
Code Review | 代码复审 | 120 | 150 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 90 |
Reporting | 报告 | 120 | 180 |
Test Report | 测试报告 | 30 | 30 |
Size Measurement | 计算工作量 | 50 | 60 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 30 |
合计 | 2350 | 3135 |
三、解题思路描述
- 解析命令行
- 将传入的命令存入list中备用
- 从得到的list中判断各个参数是否存在,若是将其标注为存在
- 将list中的各个参数存入全局变量中
- 读入日志文本并转换为数据
- 一行一行读取日志
- 将读取的行与设置好的正则表达式对比,若符合要求则将其实例化为一个InfectSituation类
- 将类存入一个list中备用
- 处理数据
- 将读取来的list中每个相同省份的数据进行合并,并将所有数据相加,存到全国类里
- 将list以省的拼音来排序
- 输出数据
- 根据参数输出相应的数据
四、设计实现过程
五、代码说明
- 分类
我将本次作业分为6个类
- 命令行类
- 数据输入类
- 数据处理类
- 数据输出类
- 正则工具类
- 分类说明
- 命令行类
- getList函数:用于获取参数,存入list
- getCommand函数:用于将list中存在的参数存入argument类中
- getArguments函数:用于将获得的argument类的各个参数赋值给全局变量
- getList函数:用于获取参数,存入list
- 数据输入类
- dataInput函数:用于将日志读入并存入list中
- dataInput函数:用于将日志读入并存入list中
- 数据处理类
- sortList函数:用于将lis以省份拼音排序
- mergeList函数:将list中相同省份的数据合并
- sortList函数:用于将lis以省份拼音排序
- 数据输出类
- dataOutput函数:用于将数据按参数要求输出
- dataOutput函数:用于将数据按参数要求输出
- 正则工具类:
1. ipSituation函数:用于匹配读入的日志内容,符合要求的存入list中
六、单元测试截图和描述
单元测试代码
白盒测试
参数:list -date -log "D:/log/" -out "D:/output.txt" -type ip
结果:
参数:list -date "2020-01-22" -log "D:/log/" -out D:/output.txt -province 福建
结果:
参数:list -date "2020-01-22" -log "D:/log/" -out D:/output.txt -province 福建 -type ip
结果:
参数:list -date "2020-01-22" -log "D:/log/" -out D:/output.txt -type ip sp
结果:
参数:list -date "2020-01-23" -log "D:/log/" -out D:/output.txt -type ip
结果:
参数:list -date "2020-01-23" -log "D:/log/" -out D:/output.txt -province 福建
结果:
参数:list -date -log "D:/log/" -out D:/output.txt -province 福建 -type ip
结果:
参数:list -date "2020-01-27" -log "D:/log/" -out D:/output.txt -type ip
结果:
参数:list -date "2020-01-27" -log "D:/log/" -out D:/output.txt -province 福建
结果:
参数:list -date "2020-01-27" -log "D:/log/" -out D:/output.txt -province 福建 -type ip
结果:
七、单元测试覆盖率优化和性能测试,性能优化截图和描述
- 单元覆盖率:
- 性能测试:
八、代码规范链接
九、心路历程和收获
在这次的作业中,我学到了许多东西。
1. 在代码开发阶段,首先,我重温了一遍JAVA的基础知识,锻炼了我的编程能力。其次,我粗略学习了一些正则表达式的内容, 这为我日后
做一些文档匹配等项目时打下了良好的基础。
2. 除此之外,我还学习到了如何为一个项目制定计划,如用PSP表格制定开发时限。这是我首次制定PSP表格,由于对自己能力的错误评估,
导致了预期时间和实际时间相差甚远。在下次使用PSP表格时我会根据个人水平,仔细制定开发计划。
3. 在debug过程中我也同样受益良多。我在不断的debug过程中,找寻错误的速度越来越快,找bug的水平日渐提高。
4. 本次的寒假作业需要自学大量知识,在这过程中我不止一次产生放弃的想法,但是想到学分还要拿就硬着头皮克服了,慢慢的进入了状态,
坚持着继续做下去。在这个竞争激烈的时代,只有靠自己的不断努力才能跟紧周围同学的脚步,我会努力的跟着同学们的步调,不断前进。
十、技术路线图相关的5个仓库
-
Spring Security
链接:https://github.com/guosuancai/spring-security
简介:
Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。 -
JavaGuide
链接:https://github.com/Snailclimb/JavaGuide
简介:
这是一份Java学习指南,涵盖大部分Java程序员所需要掌握的核心知识。 -
java-design-patterns
链接:https://github.com/iluwatar/java-design-patterns
简介:
Design patterns是程序员在设计应用程序或系统时可用来解决常见问题的最佳实践手册。它可以帮助你加快开发进程,有效防止一些可能导致重大失误的细节问题,不过深入了解
java-design-patterns之前,你应提前熟悉各种编程/软件设计原则。 -
JAVAWeb-Project
链接:https://github.com/muxiao167/JAVAWeb-Project
简介:
本仓库存放的是开始学习JAVA-WEB开发的一些练手项目,这些也适合初学者进行练习。 -
javascript
链接:https://github.com/muxiao167/javascript
简介:
本仓库存放的是包含javascript的基础语法,面向对象的实现和设计模式实现。