【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

    阅读完需:约 2 分钟

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

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

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

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

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

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

关注

评论

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

HTTP - TLS1.3 初次解读

懒时小窝

LED显示屏价格与品质哪个更重要

Dylan

LED LED显示屏 led显示屏厂家

手写vue-router核心原理

hellocoder2029

Vue

软件开发正确打开方式:低代码+微服务

力软低代码开发平台

龙湖千丁基于 ACK@Edge 的云原生智慧停车系统架构实践

阿里巴巴云原生

阿里云 Kubernetes 云原生

旷世巨作!20多位架构师携手打造的“Java 面试核心宝典”限时开源

Geek_0c76c3

Java 数据库 开源 程序员 架构

阿里云服务器ECS基本操作指南

六月的雨在InfoQ

阿里云 SSH xshell 云服务器ECS 9月月更

为什么大数据工程师比数据科学家的需求更大

雨果

数据工程师

架构实战训练营模块1作业--开启架构之旅

阿姆斯壮

架构实战营 #架构实战营

Java | this和super关键字【深入理解子类和父类的继承关系】

Fire_Shield

super this 9月月更

一比一手写迷你版vue,彻底搞懂vue运行机制

hellocoder2029

JavaScript

NFTScan 与 Banksea Finance 在 NFT 源数据层面达成战略合作

NFT Research

区块链 NFT 合作 web3

5G网络行业切片SLA初探

鲸品堂

5G 网络切片

Fluid 助力阿里云 Serverless 容器极致提速

阿里巴巴云原生

阿里云 Serverless 云原生 Fluid ASK

java基础面试题

钟奕礼

编程 java;

IP地址和MAC地址都可以确定目标地址,为什么二者都在使用,舍弃一个是否可行?

阿柠xn

Mac IP 网络 协议族 9月月更

概述数据交换的构建策略

穿过生命散发芬芳

数据交换 9月月更

你用对了么?对象文件网关 VS 分布式文件存储

焱融科技

云计算 分布式系统 对象存储 高性能 文件存储

开发者测评:相比 Harbor,我选择 ACR 的三点原因

阿里巴巴云原生

阿里云 Kubernetes 容器 云原生 ACR

2022届秋招Java岗高频面试题盘点,老司机也未必全会,真的太卷了

钟奕礼

Java 面试 java;

数据API开发如何快速上手:先了解什么是数据API生命周期管理

雨果

API 数据api

【编程基础】利用Python实现阿姆斯特朗数的求解

迷彩

Python 9月月更 阿姆斯特朗数 水仙花数

融云x白鲸《2022社交泛娱乐出海白皮书》

融云 RongCloud

互联网 白皮书 融云

信创升级 | 秒云与人大金仓完成兼容性互认证

MIAOYUN

数据库 信创 国产数据库 信创云 容器云平台

数据产品经理那点事儿二(合集)

松子(李博源)

大数据 深度思考 高效工作

字节、美团、滴滴以及蚂蚁金服Java后端面试过程

收到请回复

Java 程序员 面试 项目 语言 & 开发

模块一作业

中心化决议管理——云端分析

字节跳动终端技术

ios 研发效能 CocoaPods 制品库 云化服务

SAE 助力贵州酒店集团从容支撑贵州特产抢购

阿里巴巴中间件

阿里云 Serverless 云原生 SAE

开发者有话说|成长之路

六月的雨在InfoQ

个人成长 开会 996 007 9月月更

数据产品经理那点事儿三(合集)

松子(李博源)

大数据 深度思考 高效工作 数据产品经理

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