zoukankan      html  css  js  c++  java
  • 结对编程

    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、码云提交记录


  • 相关阅读:
    SQL TOP 分页
    C# Word 打印
    Oracle 11g 卸载日志
    用 16G 内存存放 30亿数据(Java Map)转载
    HTMLDivElement.prototype
    在TOMCAT8.5使用 JOSSO 单点登录(Agent 端)
    德哥的PostgreSQL私房菜
    Object-relational impedance mismatch (转载)
    Java性能最后一个领域:去除垃圾回收器
    我们为什么选择Vue.js而不是React(转载)
  • 原文地址:https://www.cnblogs.com/lxr-/p/8644247.html
Copyright © 2011-2022 走看看