重构和增加功能
2011-07-28 09:08
344 查看
重构和增加功能
黄国强 2004年09月16日今天有一位同事问到一些开发的问题,我认为比较典型,故写上一段短文,希望能给大家一点启发。
我们遇到软件增加功能的时候,传统的方法是拿过源代码直接动手修改。这本身亦无可厚非,一般都是这样。但如果我们换个角度,从敏捷开发方法的角度考虑,却大有问题。因为直接修改代码本身有一个可怕的后果,就是引入bug,原先正常运转的功能面临被破坏的危险。
敏捷开发方法以快速响应用户需求和提供高质量的产品而博的广泛的赞誉。从这个角度分析,上述增加功能的行为应该由两部分步骤构成,即重构和OCP扩展。我们看一下重构的定义。重构即在不改变现有功能的情况下修改现有代码。而OCP(开闭原则)的定义是在不改变现有代码的情况下,扩展软件功能。
所以,第一步我们改代码的时候千万不要引入新的功能。重构的目的是在增加新的功能的时候不用更改现有的哪怕一行代码。第二步OCP扩展阶段则用继承的方式增加新的类来扩展软件的功能,从而达到在不修改现有代码的情况下扩展软件功能的目的。
好像有点过于理想化了,不过尽量把握这个原则,才能使我们有可能开发出高质量的软件产品。否则必然陷入泥潭而不能自拔。
相关文章推荐
- 美国高通公司为Qualcomm Vuforia 移动视觉平台增加3D重构功能,推出Smart Terrain 新特性
- .NET跨平台之旅:增加文件日志功能遇到的挫折
- 微信6.5.4内测版、增加了几个有趣的功能
- Java实现点击一个Jlabel增加一个Jlabel的小功能
- seci-log 1.11 发布,日志分析软件增加 ftpserver 等功能
- Discuz!教程之DIY主题模块增加主题随机排序功能
- 基于Web的RSS阅读器,新增加“加入收藏夹”功能,欢迎试用。
- 在Matlab当中增加VBScript运行功能
- 一比二购增加价格比较功能了
- C语言-----循环双向链表(增加文件读写链表功能)
- 使用trash-cli避免误删文件--为rm增加回收站功能
- 老紫竹精确搜索1.02版,增加了SWT聊天功能
- 给BLOG增加了一个在线音乐功能
- Python的IDEL增加清屏功能实例
- 给文章增加“Copy Code”功能
- 实现v9内容页url规则增加汉字拼音功能
- Xcode重构功能怎么用我全告诉你
- 390开发实用技术: 重拳出击,CICS联机程序开发新手必看---一个典型的CICS程序,所有完备功能包括上下翻屏,增加/编辑/删除/拷贝纪录等
- QT中如何实现XML文件的创建、增加、修改、删除功能。
- MPlayer 增加边看边剪切功能