NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

抛砖引玉——重构是必要的浪费

  • 2007-12-18
  • 本文字数:611 字

    阅读完需:约 2 分钟

重构是敏捷开发人员工具箱中的一项核心实践。按照重构的定义——修改内部结构(设计)而不影响外部行为——来讲,它并不能为客户创造可衡量的价值。在精益世界中,任何不能为客户创造价值的做法都是浪费,客户所能够感知到的只是行为/ 功能,而非结构。

但是精益定义了两种类型的浪费:“纯粹的浪费”和“必要的浪费”。“纯粹的浪费”指的是那种既不能给开发团队也不能给客户带来好处的做法。“必要的浪费”是指某些行为,即便它不能给客户创造价值,但也是在我们所知的范围内完成一项工作的最佳方式。重构就是典型的后者之一。

那又为什么要把一个有价值的做法称作“必要的浪费”呢?呃,这里的着眼点在于,它对于客户而言是没有价值的。所以我们应该把在这方面投入的 精力尽量减到最少,而且需要不断寻找更好的替代方案。可如果我们没有把它识别为一种浪费的话,我们就会把它理解为正确完成工作的唯一方式,不再寻找解决途 径——想一下“预先做大量的设计(Big Design Up Front)”吧。

如果看完了上面的话以后,你仍然赞同我的观点,那么接 下来就有一个问题等着你了:“那又怎么样?理解也好,不理解也罢,会有多大影响吗?”当开发人员把重构看作是必要的浪费时,他可能就会尽量减少重构,只重 构那些不再符合客户需求的代码。也即,如果你在编码的过程中发现了类中的某个方法有“坏味道”,但是它和你正在实现的需求并无联系,那就把它放到一边去。查看英文原文 Opinion: Refactoring is a Necessary Waste

2007-12-18 07:36974
用户头像

发布了 197 篇内容, 共 52.5 次阅读, 收获喜欢 20 次。

关注

评论

发布
暂无评论
发现更多内容

EMQ 映云科技走进高校,与浙大城市学院联合促进物联网人才培养

EMQ映云科技

物联网 mqtt

一周信创舆情观察(11.29~12.5)

统小信uos

Python代码阅读(第69篇):首字母大小写变换

Felix

Python Code 字符串 阅读代码 Python初学者

云ERP系统究竟是什么?

低代码小观

流程管理 ERP 业务流程管理 业务流程自动化

FPGA大发展!现在或许是从事FPGA行业的最好时代

科技新消息

架构实战营模块一学习总结

Evan

架构实战营

自定义View:如何实现点击图标旋转的动画效果

Changing Lin

12月日更

探索圈外的世界 | GTLC 全球技术领导力峰会·厦门站圆满收官

TGO鲲鹏会

区块链 方法论 技术管理 GTLC

架构实战营模块一作业

Evan

架构实战营

缓存数据的淘汰之路(下)

卢卡多多

缓存 28天写作 签约计划第二季 12月日更

2021年11月云主机性能评测报告

博睿数据

云主机 博睿数据 数据链DNA

基于云的技术架构设计实践-第5篇

hackstoic

数据分析 云原生 数据可视化 业务分析 签约计划第二季

如何验证你的产品创意?

石云升

产品思维 28天写作 12月日更

Cypress 基础 - 元素的定位

Jerry Wang

CSS html Cypress 28天写作 12月日更

缓存数据的淘汰之路(上)

卢卡多多

28天写作 签约计划第二季 12月日更

构建信创基础软硬件共同体,DataPipeline与中科曙光完成产品兼容互认证

DataPipeline数见科技

大数据 中间件 服务器 数据融合

缓存数据的淘汰之路(中)

卢卡多多

缓存 28天写作 签约计划第二季 12月日更

博睿数据携手火山引擎,共建新云新未来

博睿数据

百万级 QPS 业务新宠,金山办公携手 Apache APISIX 打造网关实践新体验

API7.ai 技术团队

云原生 API网关 wps API Gateway Apache APISIX

使用 HTML、CSS 和 JavaScript 制作的随机密码生成器

海拥(haiyong.site)

JavaScript 密码 28天写作 签约计划第二季 12月日更

2600亿!全球最大中文单体模型鹏城-百度·文心发布

百度大脑

人工智能

PackML从会到不会——状态、管理标签(5)

陈的错题集

标准化 PackML

Gartner预测全球人工智能软件市场将在2022年达到620亿美元规模

WorkPlus

ONES X 蓝城兄弟|有机的研发管理改进是最健康的颠覆

万事ONES

项目管理 ONES 项目管理工具

Python Qt GUI设计:菜单栏、工具栏和状态栏的使用方法(拓展篇—2)

不脱发的程序猿

Python qt GUI设计 Qt Creator 菜单栏、工具栏、状态栏

斟茶兵——远程进程管理

白粥

进程管理 运维开发 系统维护 离职交接 日常工作

普华基础软件加入龙蜥并成为理事单位,共创开源操作系统新生态

OpenAnolis小助手

龙蜥社区

想给用户天涯若比邻的体验?业务全球化面临的三重挑战

声网

网络

Veritas:2022年数据安全及合规领域行业预测

WorkPlus

你以为Vue3封装一个弹框组件很简单?

CRMEB

从实习到秋招成为一名安全工程师,我经历了什么

网络安全学海

面试 网络安全 信息安全 渗透测试 WEB安全

抛砖引玉——重构是必要的浪费_研发效能_Amr Elssamadisy_InfoQ精选文章