前言
我回来了……先给大家说声DBQ 很过意不去=-= 本来是打算国庆写好之后给大家分享一下代码的架构思路和怎么写
结果打比赛做项目每天没什么时间写代码 更不要说写博客了 QUQ 这1个月多每天都是上班导凌晨,回宿舍开始写(国庆什么的就别想了好吧)
总结一下这段时间就是 白天上课,晚上打比赛,凌晨断断续续打代码,睡一会起来上课。不过所幸,比赛结果还是好的
一直到15号才真正闲下来 真的有点肝不动了 ……… BY dzy
链接
具体分工
邓泽源主要负责代码的编码部分
姚彬锟主要负责博客的撰写、代码的分析测试。
PSP表格
PSP2.1 | Personal Software Process Stages |
预估耗时(min) | 实际耗时(min) |
---|---|---|---|
Planning | 计划 | 50 | 40 |
Estimate | 估计这个任务需要多少时间 | 50 | 40 |
Development | 开发 | 1610 | 1920 |
Analysis | 需求分析 (包括学习新技术) |
600 | 750 |
Design Spec | 生成设计文档 | 60 | 50 |
Design Review | 设计复审 | 60 | 50 |
Coding Standard | 代码规范 (为开发制定合适的规范) |
30 | 30 |
Design | 具体设计 | 200 | 200 |
Coding | 具体编码 | 500 | 570 |
Code Review | 代码复审 | 80 | 70 |
Test | 测试 (自我测试,修改,提交修改) |
180 | 200 |
Reporting | 报告 | 135 | 150 |
Test Report | 测试报告 | 45 | 60 |
Size Measurement | 计算工作量 | 30 | 30 |
Postmortem & Process Improvement Plan |
事后总结 并提出过程改进计划 |
60 | 60 |
合计 | 1795 | 2110 |
解题思路描述与设计实现说明
网络接口的使用
代码组织与内部实现设计(类图)
说明算法的关键与关键实现部分流程图
关键代码解释
性能分析与改进
改进的思路
一开始的时候由于用python写速度会比较慢一些,运行时间到了10几秒,经过性能分析,发现在( )函数消耗了很大一部分的时间,于是我(),最后成功让算法的性能有所提高,达到了5秒钟作业。性能分析图和程序中消耗最大的函数
性能分析图如下所示,消耗最大的函数是Second,就是计算中墩的函数。
单元测试
单元测试这部分我们测试主要对三个函数进行测试,其他函数因为功能十分简单,所以就没有进行测试。测试的三个函数分别是得到前墩、中墩、后墩的三个函数,由于结构基本一样,只有变量的改变,所以只给出一部分的代码。各测试数据都是在手机app“大头十三水”读出的数据,然后为了提高一些代码的覆盖,我们尽可能的挑选了不同的数据进行测试,尽可能的覆盖更多的代码分支。而且由于前墩中墩后墩的结果会互相影响,即前墩挑出后要先把前墩的牌剔除再放入中墩函数进行计算,所以中墩的测试数据是在手动剔除前墩的基础上得到的,后墩同理。最后得出的结果与我们设计的算法的思路是一致的。
class MyTestCase(unittest.TestCase): def testfirst(self): weig0 = 10 weig1 = 7 weig2 = 6 self.assertEqual(shisanshui.first(str0), weig0) self.assertEqual(shisanshui.first(str1), weig1) self.assertEqual(shisanshui.first(str2), weig2) def testsecond(self): weig0 = 10 weig1 = 9 weig2 = 8 self.assertEqual(shisanshui.second(str0), weig0) self.assertEqual(shisanshui.second(str1), weig1) self.assertEqual(shisanshui.second(str2), weig2) def testthird(self): weig0 = 10 weig1 = 9 weig2 = 8 self.assertEqual(shisanshui.second(str0), weig0) self.assertEqual(shisanshui.second(str1), weig1) self.assertEqual(shisanshui.second(str2), weig2)
Github的代码签入记录
遇到的代码模块异常或结对困难及解决方法
- 问题描述
前端这一部分的编写。
结对沟通的问题。
除了算法其实都有问题,之前没有做过一个稍微完整的项目,所以很多东西都没有学过,也没有这方面的知识。 - 做过哪些尝试
因为刚开始讨论的时候算法用C++来写,而前端决定用python写,后来听到有人说什么python写出来的前端会有问题,导致进度一度拖着……后面dzy强势肝完了这些问题,把C++转成java又转python,学习pygame、pyqt…学的东西真的多。
结对问题就用聊天工具,就差聊出火花了。
对没有学习的东西,只能靠搜索引擎和B站了。 - 是否解决
都解决了都解决了,没解决就写不出这个博客了… 有何收获
感受就是速成太难受了,计算机的世界太复杂。
原来为了学习也能够聊出火花。
再次强调,搜索引擎是个好东西。
评价你的队友
======- 值得学习的地方
dzy真的太能肝了,学习能力也太强了,偷来羡慕的目光。 需要改进的地方
我觉得他tql,什么都不需要改进,如果必须要改进的话,那就是为了互联网+没空好好带我好好敲代码。
学习进度条
第N周 | 新增代码(行) | 累计代(行) | 本周学习耗时(小时) |
---|---|---|---|
1 | 100 | 100 | 5 |
2 | 300 | 400 | 10 |
3 | 300 | 700 | 15 |
4 | 300 | 1000 | 10 |