码迷,mamicode.com
首页 > 其他好文 > 详细

遗留代码

时间:2015-04-25 13:45:26      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:c++   代码覆盖   单元测试   架构设计   自动化   

关键词:遗留代码,代码修改,测试


概述

遗留代码

从其他人或者其他版本获得的代码。

特点

架构设计差

代码风格不一致

文档少和模糊

非常有价值,成功代码

修改遗留代码原因

新功能

Bug

重构

优化

 

修改

Risky change 修改风险

  • What changes do we have to make? 哪些是必须修改的内容
  • How will we know that we’ve done them correctly? 修改正确吗
  • How will we know that we haven’t broken anything? 修改无副作用吗

加快理解代码实现

  • Notes/Sketching     笔记和草图
  • Listing markup       搜索所有关键字
  • Scratch refactoring    重构
  • Delete unused code   删除次要代码

如何防止破坏代码

  • 隔离新代码
  • 新生方法 (sprout method)
  • 包裹方法(wrap method)

Sensing & separatin 感知和隔离

 

修改耗时的原因:

  • 理解设计和代码
  • 修改副作用检查
  • 编译时间
  • 无单元测试
  • 测试反馈慢(feedback slow)

修改正确吗

  • Hyperaware editing      小心翼翼修改
  • Single-goal editing       修改高度内聚,一次只改一个功能
  • Preserve signatures      签名修改
  • Lean on the compiler     使用编译器检查修改

 

工具和流程

流程

  •   Mindset/Books    思想,书 
  •   Code                   一起编码
  •   TDD/BDD            单元测试
  •   Code Coverage   代码覆盖率
  •   CI                           代码集成
  •   Static Analysis    代码静态分析
  •  Code Review        代码评审

工具

  Lexical analysis

 命名, 代码风格

  Flow/path analysis

 空指针,无用代码

C++ - Covtool, gcov

C++ - CppUTest.  so mycoworkers don‘t break my codes. 防止同事误操作

  Dependency analysis

 架构

 C++- (Sp)Lint

  Verification

 C++- Jenkins (Shell/Make)

 

单元测试,保持代码整洁

? test individual units                                              测试粒度

? isolate each part                                                  隔离每个单元

? show that the individual parts are correct       正确性验证

? regression testing                                               回归测试

? sort of living documentation                              动态文档

? executed within a framework                            自动化框架


It‘s an hard work but (usually) not impossible !

参考

Working.Effectively.with.Legacy.Code



遗留代码

标签:c++   代码覆盖   单元测试   架构设计   自动化   

原文地址:http://blog.csdn.net/cutter2002/article/details/45269507

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!