一、GitHub地址
二、psp表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | 30 | 30 |
Estimate | 估计这个任务需要多少时间 | 60 | 60 |
Development | 开发 | 400 | 480 |
Analysis | 需求分析 (包括学习新技术) | 300 | 300 |
Design Spec | 生成设计文档 | 200 | 180 |
Design Review | 设计复审 | 30 | 20 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 20 |
Design | 具体设计 | 40 | 50 |
Coding | 具体编码 | 500 | 500 |
Code Review | 代码复审 | 30 | 30 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 50 |
Reporting | 报告 | 30 | 30 |
Test Repor | 测试报告 | 20 | 20 |
Size Measurement | 计算工作量 | 10 | 10 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 20 | 30 |
合计 | 1710 | 1810 |
三、解题思路
刚开始想用高德地图高德API获取行政区划数据后,通过逆地理编码API返回详细地理信息的方法划分,这样的优点是可以补齐没有的地址,缺点是有的时候,一级难度的地址没也写全,但不用补充的时候,它也补了。所以,后面修改为等级为1、2的全部用正则表达式处理,等级为3的,用高德地图处理,后面的街道、门牌号由于高德地图有可能定位错误,所以我又用了正则表达式。用了十四个函数,十二个是用来划分信息的,两个分别是输出五级地址和七级地址,每划分出一个信息,就从字符串中去掉,便于下一次划分地址和最后剩余地址的输出。
四、代码语言和关键代码
代码是用python写的。关键代码是取高德地图的库,和正则表达式选择道路和门牌号。
五、计算模块接口的设计与实现过程
六、计算模块接口部分的性能改进
七、计算模块部分单元测试展示
输入:
2!李四,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.
1!张三,福建福州闽13599622362侯县上街镇福州大学10#111.
2!王五,福建省福州市鼓楼18960221533区五一北路123号福州鼓楼医院.
输出:
{"姓名": "李四", "手机": "13756899511", "地址": ["福建省", "福州市", "鼓楼区", "鼓西街道", "湖滨路", "110号", "湖滨大厦一层"]}
{"姓名": "张三", "手机": "13599622362", "地址": ["福建省", "福州市", "闽侯县", "上街镇", "大学10#111"]}
{"姓名": "王五", "手机": "18960221533", "地址": ["福建省", "福州市", "鼓楼区", "", "五一北路", "123号", "福州鼓楼医院"]}
八、计算模块部分异常处理说明
捕捉输入输出异常。
九、心路历程
从开始只用高德地图划分地址,发现测试代码的分数很低,到火速加正则表达式的方法划分,感觉这几天听到最多的就是敲键盘的声音。 我太菜了,不会python,边学边写,也是很艰苦,虽然时间比较紧,但是还是学到了很多东西,个人感觉这种在实战中学习的方法比看工具书更有效率。