重构和增加功能
来源:互联网 发布:c语言如何调用子函数 编辑:程序博客网 时间:2024/06/05 10:49
重构和增加功能
黄国强 2004年09月16日
今天有一位同事问到一些开发的问题,我认为比较典型,故写上一段短文,希望能给大家一点启发。我们遇到软件增加功能的时候,传统的方法是拿过源代码直接动手修改。这本身亦无可厚非,一般都是这样。但如果我们换个角度,从敏捷开发方法的角度考虑,却大有问题。因为直接修改代码本身有一个可怕的后果,就是引入bug,原先正常运转的功能面临被破坏的危险。
敏捷开发方法以快速响应用户需求和提供高质量的产品而博的广泛的赞誉。从这个角度分析,上述增加功能的行为应该由两部分步骤构成,即重构和OCP扩展。我们看一下重构的定义。重构即在不改变现有功能的情况下修改现有代码。而OCP(开闭原则)的定义是在不改变现有代码的情况下,扩展软件功能。
所以,第一步我们改代码的时候千万不要引入新的功能。重构的目的是在增加新的功能的时候不用更改现有的哪怕一行代码。第二步OCP扩展阶段则用继承的方式增加新的类来扩展软件的功能,从而达到在不修改现有代码的情况下扩展软件功能的目的。
好像有点过于理想化了,不过尽量把握这个原则,才能使我们有可能开发出高质量的软件产品。否则必然陷入泥潭而不能自拔。
- 重构和增加功能
- android 增加重启功能
- 动态重定位的增加的紧凑功能
- proxmox VE 4.4 增加USB 重定向功能
- android_eclipse重构功能
- Xcode重构功能
- Xcode重构功能
- Xcode重构功能
- supesite后台增加菜单和功能
- ckeditor增加行距功能和中文字体
- Android分区增加和reset功能实现
- mediawiki功能增加和优化问题
- 为对话框增加打开和另存为功能
- 机房重构——增加用户
- C++多态之继承6-派生类中增加功能,重定义功能,添加功能以及隐藏功能
- 常规功能和模块自定义系统 (cfcmms)—043模块导航功能的重构(1)
- 常规功能和模块自定义系统 (cfcmms)—044模块导航功能的重构(2)
- eclipse的重构功能
- Android-x86入门之--如何利用android-x86取代模拟器进行应用程序的开发
- C#的命名规范 2
- 八个问题带你认识一个成熟的数据泄露防护方案
- PHP数据类型转换(字符转数字,数字转字符)
- VS2010-VS2010 连 TFS 删除默认登录
- 重构和增加功能
- hdu 2203 (kmp)
- zoj3511 杂/树状数组
- EasyUI datagrid动态列(代码)
- gridfs 读取图片流 生成缩略图
- 培养宝贝惊人记忆力10妙招哦
- EasyUI 动态改变数据窗口列 Dynamic Change DataGrid Coiumns
- ★ Visual Studio 2008 每日小窍门 【持续发布ing~】 Tips:067
- 如何为网站设置图标