从金融学的角度看“重构”,从javaeye看到一篇文章,深表赞同。
来源:互联网 发布:知乎 女生 自由搏击 编辑:程序博客网 时间:2024/06/05 16:28
原文地址: http://www.javaeye.com/topic/190154
作者 tuti
发表时间:2008-05-06
前些日子在InfoQ看到篇文章 "抛砖引玉——重构是必要的浪费" http://www.infoq.com/cn/news/2007/12/refactoring-is-waste.
文中认为 “重构并不能为客户创造可衡量的价值。所以将重构归为必要的浪费。
个人觉得这样的解读很牵强,也有悖于精益的基本精神。
我觉得问题核心在于重构对于客户创造了什么价值。
近日从金融学的角度来进行分析,略有所悟。
重构其实提供了“需求变化”的“看多期权”(call)--事实上还提供了其他多种变化的看多期权。需求变化的可能性越大,这份期权就价值越高。而在金融市场上充满了明码标价的期权交易。
以TDD的三步骤(不可运行,可运行,重构)为例,可以看做实现一个功能的“现货价值”并附加该功能需求变化的“看多期权”。 而只完成功能要求程序,不进行重构,只能看单纯含有一个功能的“现货价值”。
对于客户而言,附加有“需求变化看多期权”的程序价值要高于只含“现货价值”的程序。
对于“需求变化看多期权”最坏的情况也就是“需求不变化”,这份期权就没必要行使。
这就是“需求稳定项目(如:学校大作业)”和“需求总是与时俱进的项目”在开发行为上存在差异的原因之一。
事实上,我觉得软件项目开发,充满了时间序列上的发生的不确定性,项目的过程中需要不断的吸收这种不确定性,并追求项目达到更高的价值。这种情况很适合以金融学的视角进行分析。
- 从金融学的角度看“重构”,从javaeye看到一篇文章,深表赞同。
- 从JavaEye版主那里看到的Web分页秘籍
- 从OOP的角度重看C++(四)——从程序中看OOP
- 一篇在javaeye看到的有关ruby 基础知识的文章[转](jasonchi)
- 从地址角度看
- JMX学习体会(只是本人的文章从JAVAEYE搬到这来)
- 看到的一篇文章
- 从逆向分析角度看C++的析构函数
- 从FrameWork的角度看Creational Pattern
- 从编译器的角度看C代码
- 从组成的角度看JSP
- 从深度心理学的角度看爱情
- 从分布式系统的角度看REST
- 从程序员的角度看DNA
- 从程序员的角度看DNA
- 从操作系统的角度看程序
- 从一个大学生的角度看现代教育
- 从二进制的角度看对象
- boot.ini的深度解析
- vmware 下 ubuntu 全屏显示
- Oracle_5 ROWNUM CreatNewUser 备份一张表
- C#实现http协议支持上传下载文件的GET、POST请求
- POST与GET的差异
- 从金融学的角度看“重构”,从javaeye看到一篇文章,深表赞同。
- struct
- H.264开源算法
- DataView.Sort 属性
- Android开发的一点东西
- Struts2与下拉列表绑定的取值问题
- 在 Visual Studio 2010"可用的内存不足,无法满足预期的要求的操作此时可能是由于到虚拟地址空间碎片"错误消息
- Java线程安全总结
- emacs 乱码