10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

向管理层解释重构

  • 2010-08-02
  • 本文字数:726 字

    阅读完需:约 2 分钟

该如何向 CEO 及其他没有技术背景的人们证明重构的价值呢?

在一场主题为“ Refactoring Justification Language ”的讨论中,来自 BigVisible 的敏捷教练 Adam Sroaka 说到“重构是必要的,因为需求不可避免地会发生变化,这样代码也不可避免地要适应这种变化。当遵循良好设计原则的代码发生变化后,他们就不再遵循这些原则了。重构是这样一种技术:一旦代码修改后,我们可以通过重构不断改进代码的设计”。

来自 CollabNet 的 Scrum 认证培训师 Michael James 则关注于重构与测试优先的编程模式。他说,一开始编写的新代码总是有些凌乱,这样他和他的搭档就需要时间清理代码。

XP 创始人之一的 Ron Jeffries 在一篇名为“ Why is Refactoring a Must ”的文章中说到,假如我们无法在为期两周的 Sprint 中交付 Scrum 项目所需的所有必要的基础设施,那么我们就得准备重构了,以此进行改进,否则我们迎来的将是一团乱麻,这会严重阻碍项目团队的进度。他还指出,Scrum 与任何其他的敏捷方法的一个基本假定是需求会发生变化。如果需求发生了变化,那么就需要重构代码以清理留下来的乱摊子。

Michael James 在“Refactoring Justification Language”的讨论中补充到:即便需求不会发生变化,重构也是必不可少的,因为我们一开始所编写的代码肯定不会是完美的

Mark Woyna 建议到,我们应该看看汽车产业:每年,制造商们都会对汽车进行众多细小的更新,但只有很少一部分是最终用户的需求。有时,他们会修改某个零件以提高使用寿命或是降低花费。

此次报道表明:我们甚至都没必要和管理层讨论重构这个话题。重构应该是我们职业道德的一部分。每天早上的第一件事就应该是重命名或是提取方法,这就好像是工作之前的热身一样。

查看英文原文: Explaining Refactoring to Management

2010-08-02 07:592288
用户头像

发布了 88 篇内容, 共 271.1 次阅读, 收获喜欢 9 次。

关注

评论

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

架构师第一期作业(第8周)

Cheer

作业

面对大促DevOps怎么做?这里有一份京东11.11 DevOps备战指南

京东科技开发者

云计算 DevOps 运维自动化

重大活动网络攻击面前,京东智联云的攻防之道

京东科技开发者

云计算 网络安全 云安全

SpringBoot中的响应式web应用

程序那些事

spring WebFlux 程序那些事 响应式系统 spring 5

京东11.11完美收官!京东智联云以技术服务助力实体经济

京东科技开发者

云计算 大数据 云安全

第八周作业

详解快速开发平台与工作流通用组件的设计规范

Philips

敏捷开发 快速开发 企业应用

手把手教你撸一个能生成抖音风格动图的gif制作平台

徐小夕

Java css3 GitHub 开源 GIF

第八周总结

springboot+java+redis 简单实用的搜索栏热搜,个人历史记录,文字过滤

灰尘子

【涂鸦物联网足迹】涂鸦云平台数据类型和取值约束说明

IoT云工坊

人工智能 云计算 物联网 云平台 数据类型

熔断原理与实现Golang版

万俊峰Kevin

microservice Go 语言

数字信封加密

笑春风

《Java程序员修炼之道》.pdf

田维常

将减少阻力的香蕉法则,运用在软件开发上会产生什么效果?

Philips

敏捷开发 快速开发 企业应用

架构师训练营第 1 期第 8 周作业

owl

极客大学架构师训练营

一个数据中台如何算成功了?

薄荷点点

数据中台

极客大学 - 架构师训练营 第九周作业

9527

直播预告 | 云原生在CloudQuery中的应用与实践

BinTools图尔兹

数据库 sql 容器 云原生 工具软件

面试重灾区——Synchronized深度解析

执墨

并发编程 synchronized 内存布局 CAS 锁升级

不可思议,竟然还有人不会查看GC垃圾回收日志?

田维常

垃圾回收 GC

决策树算法-实战篇

比伯

Java 大数据 编程 架构 算法

线程池 ThreadPoolExecutor 原理及源码笔记

程序员小航

Java 源码 jdk 线程池 并发

分布式集群如何实现高效的数据分布

vivo互联网技术

分布式 DHT hash 数据存储

charles的使用方法

Yolanda_trying

HTTP 前世今生

coolion

大前端 HTTP

数据库建表、SQL、索引规范

Bruce Duan

MySQL sql 建表 规范

接口测试文件上传(python+requests)

测试人生路

Python 接口测试

高性能IO模型:为什么单线程Redis能那么快?

小Q

Java redis 学习 架构 面试

BATJTMD,大厂招聘,都招什么样Java程序员?

小傅哥

Java 互联网 面试 小傅哥 简历

关于mysqldump,这个参数你可能还不知道

Simon

MySQL timestamp

向管理层解释重构_研发效能_Mark Levison_InfoQ精选文章