2020软件工程第一次个人编程作业

这个作业属于哪个课程 <软件工程>
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2020/homework/11167
这个作业的目标 <学习解析 Json 文件,从中提取所需信息并熟悉 GitHub 的使用>
学号 <031802117>

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 20
Estimate 估计这个任务需要多少时间 720
Development 开发
Analysis 需求分析 (包括学习新技术) 360 300
Design Spec 生成设计文档 0 0
Design Review 设计复审 0 0
Coding Standard 代码规范 (为目前的开发制定合适的规范) 20 20
Design 具体设计 30 30
Coding 具体编码 180 240
Code Review 代码复审 60 10
Test 测试(自我测试,修改代码,提交修改) 30 15
Reporting 报告 30 10
Test Report 测试报告 30 60
Size Measurement 计算工作量 30 30
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 30 15
合计 830 750

解题思路描述

  • 看完题目后,浑然不知道怎么入手为好,压根不知道从哪里着眼。那么我一开始就没有对于代码的思路进行设计规划。

  • 首先是学习老师的b站视频,学习到基本的git的使用,完成fork,clone,pull request等一系列操作(中间就是使用老师的示例代码先充充数)。

  • 其次也就是最痛苦的一块:代码的设计。在此,我后悔之前学习python时的偷工减料,之前只是学习了最最基础的语法,对于文件的操作完全是丈二摸不着头脑。对于代码的设计其实是完全不存在的,就是通过对于示例代码的学习来解决此问题的。经过一顿猛学(百度+csdn一行一行的代码查阅),最后大致清楚代码的具体流程。

代码流程

  1. 完成初始化。具体:完成文件.json的输入,对输入数据采取所需信息,将信息根据不同的指令需要分为3个文件并生成出来,以便后续使用。

  2. 根据3种不同的指令需要,完成数据的统计,并得出结果。(当然中间一顿操作猛如虎:解析json,分类,数据再转化为json,生成json文件)。

  3. 最后就是对于这四条指令以外指令的判别(初始化+三条查询指令),简称添添补补。比如初始化的报错提示,查询指令的报错提示。

任务分解(图示)

graph LR A[开始] -->B[初始化] A[开始] -->C[查询指令] A[开始] -->D[错误指令] B -->E[输入json并解析] B -->F[数据分类并统计] B -->G[生成对应文件] C -->H[调用函数直接输出]

迭代过程

  1. 我属于直接copy示例代码的人,我第一步先运行那四条指令,明白程序的大概要求。

  2. 第二步我看怎么初始化的,代码具体覆盖在哪里。整个初始化流程是怎么样的,初始化失败是怎么样的。
    (1)首先就是根据百度等大概知道json解析的方式:创建解析对象+添加命令行参数
    (2)其次就是我看不懂代码的地方:初始化的时候进行分类,同时计数。(主要是不知道为什么出来'actor__login''type'等)
    (3)最后生成3个文件。(当然中间就是json转字典,字典再转回json保存)

  3. 第三步就是查询指令怎么书写,这个跟c语言差不多,看看就OK了。

  4. 最后一步就是指令输入错误会报错,就比如初始化过了,但没有生成文件,报错。

5.当然还有什么性能优化,我前面的事情其实都差一块,这里实在是没有能力做到,只知道是多线程进行提速。

困难描述及解决办法寻找

  • 一开始不会json的解析,然后一开始头铁,没有去结合实例代码去查阅,导致一开始寸步难行。后来解决方案就是照着实例走。发现还行

  • 然后就是初始化的问题了,初始化一开始和c语言差不多,无非是多了些转化,但是后面有个分类数据并统计的,那代码看着实在不会。(。。。痛苦)

  • 最后一个难题就是查询问题的了,一开始以为初始化完后,根据需要计数,后来明白初始化后,知道初始化中已经是进行分类统计。

  • 当然我性能没有优化,听同学说用多性能进行提速。

单元测试截图和描述

1.本地测试数据

2.coverage单元测试覆盖率:

  • 我不知道有什么用,就是似乎把没有跑到的代码显示了出来,覆盖率是92%。

  • html版本

性能测试

代码规范

codestyle.md

总结

1.就是一定要好好学习,以前不好好学习下python,现在很是悔恨。然后就是以后多接触下文件的输入,解析,输出以及生成(就像这次json的解析,以及我看不懂的输入后的分类。我感觉这次作业我主要是死在这上面)。
2.百度,csdn还是蛮方便的,增强了自学能力(额,应该是吧)。 其实过程中经常不知道要干什么,最后就是死盯着代码,才走出坑来。
3.学习了pull request工作,fork,clone,push等一系列仓库的基本操作。

posted @ 2020-09-17 19:53  lbc-joker  阅读(135)  评论(1编辑  收藏  举报