这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2020 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2020/homework/11167 |
这个作业的目标 | 解析json数据包,分析并统计GitHub用户行为 |
学号 | 031802330 |
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 240+ | 240+ |
Estimate | 估计这个任务需要多少时间 | 240+ | 240+ |
Development | 开发 | 120 | 120 |
Analysis | 需求分析 (包括学习新技术) | 240+ | 240+ |
Design Spec | 生成设计文档 | 60 | 60 |
Design Review | 设计复审 | 30 | 60 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
Design | 具体设计 | 60 | 60 |
Coding | 具体编码 | 120 | 120+ |
Code Review | 代码复审 | 30 | 30 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 60 |
Reporting | 报告 | 60 | 60 |
Test Report | 测试报告 | 60 | 60 |
Size Measurement | 计算工作量 | 60 | 60 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 30 |
合计 | 1420+ | 1450+ |
解题思路
-
从一开始拿到题目的时候是一脸懵,因为之前学过的课程并没有有过这样的解题经历。从大佬那边询问得知这个就是查询字典,然后根据键值对提取有用的信息。
-
起初的想法是用C++来解决查询问题,但是对于解析json文件无从下手,然后大佬又说用python比较方便,所以就从零开始学起。
-
我学习的速度也很慢,我起先以为学完字典应该就可以独立写出这个程序,但是对于json文件的格式和题意的不了解,让我白白浪费了很多时间。后面询问另一个大佬得知了题目的大概意思(英语太菜了没能看懂)。
-
最后代码实现也是依靠大佬的帮助下完成的,具体思路就是通过解析json文件转为python中的字典,通过函数查找键值对来完成统计,最后用json.dump()生成三个json文件。
流程图
代码说明
-
json解析并转为python中的字典
-
用函数查找并统计事件数量并用字典存储
-
三个字典生成json文件
代码规范
https://github.com/031802330/2020-personal-python/blob/master/codestyle.md
单元测试
单元覆盖率
测试程序
单元性能测试
遇到的问题
从最开始的安装pycharm到最后的单元测试,都碰到了许许多多的小问题,例如:
-
pycharm安装环境的配置的环境变量设置(reaction:CSDN查找安装教程)
-
代码运行中碰到的各种错误(看不懂的英文)(reaction:先机翻看意思,不行再百度)
-
单元测试时碰到一个错误:“python3不是内部或外部命令,也不是可运行的程序或批处理文件”(reaction:(1)查看环境变量的配置;(2)如果在你的情况下还不行的话就在python安装的文件夹下复制一个python.exe,然后改名为python3.exe)
-
等一系列小问题
总结
-
这次因为首次碰到大数据分析题,对于该学哪一部分以及对于大数据的分析该怎么提取有用数据十分迷茫。
-
因为这一次刚好有大佬,但是不能每次都能依靠大佬。所以我还是会继续修习python以及它的一些库的应用,争取在下一次个人编程提交的时候能多有点自己的想法。
-
搜索引擎的善用真的很能解决一些小问题,但是关键字要找正确。