结对编程

1.改进现有代码

- 浏览所有代码考虑代码质量和测试覆盖率

- 确定当前设计的一个弱点,通过重构,确保在这个地方已有测试覆盖并保证重构没有改变已有的功能 ◦好的测试是重构的根本。检查已有代码的测试,看测试用例是否足够覆盖原代码,如果不足,请添加测试用例

- 降低代码重复量,找出代码逻辑泥球


对分数和整型的四则运算代码有很多是一样的,

- 修改代码后,检查代码覆盖,看单元测试是否需要修改?测试用例是否需要增加?

2.功能改进与扩展

增加一个运算符,程序应该有怎样的改变?不得不扔掉全部重写么,还是可以只改部分模块?基于模块化设计的思想,考虑在现有程序中做什么样的修改,才能让程序更好地实现新的需求

  • 增加括号操作符

  • 减少重复题目 ◦程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。例如,23 + 45 = 和45 + 23 = 是重复的题目,6 × 8 = 和8 × 6 = 也是重复的题目。3+(2+1)和1+2+3这两个题目是重复的,由于+是左结合的,1+2+3等价于(1+2)+3,也就是3+(1+2),也就是3+(2+1)。但是1+2+3和3+2+1是不重复的两道题,因为1+2+3等价于(1+2)+3,而3+2+1等价于(3+2)+1,它们之间不能通过有限次交换变成同一个题目。

  • 程序运行结果:
    Welcome界面:

    算数数目

    计算页面

    计时界面

  • 结对照片

  • 小结感受:结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会。

结对编程的优势在于可以加快编程速度,而且双方可以跳出自己的思维盲点,发现对方的bug,考虑的更加全面。
对于这次体验我的感觉是:如果两个人比较有默契的话,结对编程可以达到“1+1>2”的效果。我和队友因为没有提前准备,导致浪费了很多时间,却没有做出好的结果,做了很多无用工,找不到bug,没法下手修改,一片混乱。这次没有发挥结对编程的优势,只感觉还是独立完成或许会好点。
PSP2.1 个人开发流程 估计耗时 实际耗时
Planning 计划 20 15
· Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 20 30
Development 开发 350 480
· Analysis 需求分析 10 7
· Design Spec 生成设计文档 5 8
· Design Review 设计复审 10 8
· Coding Standard 代码规范 3 5
· Design 具体设计 10 20
· Coding 具体编码 240 270
· Coding Reivew 代码复审 20 15
· Test 测试(自我测试、修改代码、提交修改) 60 130
Reporting 报告 23 30
· 测试报告 3 3
· 计算工作量 10 8
· 并提出过程改进计划 10 20

3、码云提交记录


posted @ 2018-03-25 13:39  lxr-  Views(159)  Comments(3Edit  收藏  举报