一、如何组织代码
因为这个代码比较简单,用函数就足够了,个人觉得没必要用类,杀鸡不必用牛刀。
代码有点长,主要是加了很多判断参数的部分。
提取了一个公共的递归函数。
用了不少全局变量,可能当做参数传入更好吧,不过这么小的程序就这样吧,当做参数还要打包再解析(否则传一大片参数太丑了),没必要。
二、单元测试、代码覆盖率
单元测试结果:
可以看到所有测试全部通过。
详细的测试内容可以去github里看letstest.py文件,我已经添加了注释。
代码覆盖率结果:
单元测试的代码覆盖率100%,homework02的代码覆盖率99%。
有两行没有覆盖的原因是,homework02中结尾处的两行作用是直接运行时执行。单元测试是导入的homework02,所以这两行没有执行。
三、表格
Personal Software Process Stages |
时间百分比(%) |
实际花费的时间 (分钟) |
原来估计的时间 (分钟) |
计划 |
2% | 10 | 10 |
· 估计这个任务需要多少时间,把工作细化并大致排序 |
2% | 10 | 10 |
开发 |
86.8% | 430 | 330 |
· 需求分析 (包括学习新技术) |
0 | 0 | 0 |
· 生成设计文档 |
0 | 0 | 0 |
· 设计复审 (和同事审核设计文档) |
0 | 0 | 0 |
· 代码规范 (制定合适的规范) |
2% | 10 | 10 |
· 具体设计 |
48% | 240 | 180 |
· 具体编码 |
24% | 120 | 60 |
· 代码复审 |
4% | 20 | 20 |
· 测试(自我测试,修改代码,提交修改) |
8% | 40 | 60 |
总结报告 |
11.2% | 55 | 40 |
2% | 10 | 10 | |
3.2% | 15 | 10 | |
6% | 30 | 20 | |
总计 | 100% | 总用时:495 |
总估计的用时:380 |
注:
1、表格中为0的项表示没有进行相关过程。
2、因为表格太大了,会超出显示宽度,所以把最左侧的英文列删掉了。
四、总结
这次做作业整体来说比较麻烦,也是第一次做这么完整的程序,以前基本上不会写单元测试和博客。
做题时候遇到的最大问题是联通类型的求法,当时思考了一上午吧,最后终于通过贪心+递归搞定了。
总的来说,虽然麻烦但是收获挺大的。也学到了不少东西。