作业3
一.思路
这次作业的难点我觉得集中于两点:重构和单例。
重构的意思是外面没有变化,而里面却焕然一新,变得更易于修改,易于测试,以致使代码更好地重用。不过由于代码数量本身不多,所以重构并没有体现出它的威力。在这次作业中主要添加了记录最优子矩阵的代码,重写了返回值,将子矩阵也一起返回,方便主界面调用。
而单例模式如何保证呢?
梁杰同学想出了这个办法:就是通过文件的方式来为主界面添加新命令。具体思路就是,我们有一个data文件,文件当中存储的是当前的所有命令。主界面会定期访问data文件,从文件中读取所有命令,如果发现有新命令就刷新界面。如果在已经有一个主界面的情况下再次运行命令,则会将新命令添加到data文件中并退出。这样就变相实现了通信。虽然不是最完美的办法,但是也可以解决问题。
二.心得
主要谈谈结对编程的感想。任务安排下来有三点,一是设计,二是编码,三是测试。我功力较差,拿到了测试的资格,非常开心︿( ̄︶ ̄)^。在实际运用中,我们拿了一个星期六上午的早上尝试结对编程,主要是在编码过程中能跟随代码走,提前纠正一些细节上的小错误。不过我的感受是这种小规模的作业题还是适合自己动手做,毕竟是算法类的题目,而不是工程类的题目,要是换成万行以上的大项目,估计更能见识结对编程的威力。
三.效率分析
Personal Software Process Stages 时间百分比(%) 实际花费的时间 (分钟)
计划 10% 24 · 估计这个任务需要多少时间,把工作细化并大致排序
10% 24 开发 85% 204 · 需求分析 (包括学习新技术)
15%
36 · 设计复审 (和同事审核设计文档)
10% 24 · 代码规范 (制定合适的规范)
5% 12 · 具体设计
10% 24 · 具体编码
35% 84 · 代码复审
5% 12 · 测试(自我测试,修改代码,提交修改)
5% 12 总结报告 5% 12 总计 100% 240
四.效果截图