写点什么

31 天重构指南

  • 2009-09-06
  • 本文字数:591 字

    阅读完需:约 2 分钟

代码重构(refactoring)是指在保持程序外部表现不变的情况下改变其内部实现的做法。重构的目标主要是改进程序的内部质量,例如增加代码可读性,简化代码结构,增强可维护性、性能或扩展性。即使初期设计得再合理,但由于软件发展本身不可能是完美的,因此重构作为改进代码质量的手段,会持续运用在在软件开发过程中。

重构领域最著名的资源莫过于 Martin Fowler 所著的《重构:改善既有代码的设计》,此外,Martin 还维护了一个重构资源站点,用于随时补充重构有关的信息资料。

八月份, Sean Chambers 在博客中编写了一系列描述重构方式的文章。Sean 指出,这些重构方式主要来源于 Martin 的重构资源站点、代码大全(第二版)以及平时由他自己收集的互联网资源,他的目的是为各种重构方式提供了一些额外的描述及相关的讨论。

以下是这 31 篇文章列表:

  1. 封装集合
  2. 移动方法
  3. 提升(pull up)方法
  4. 降低(push down)方法
  5. 提升字段
  6. 降低字段
  7. 改名(方法,类,参数)
  8. 使用委派代替继承
  9. 提取接口
  10. 提取方法
  11. 使用策略类
  12. 分解依赖
  13. 提取方法对象
  14. 分离职责
  15. 移除重复内容
  16. 封装条件
  17. 提取父类
  18. 使用条件判断代替异常
  19. 提取工厂类
  20. 提取子类
  21. 合并继承
  22. 分解方法
  23. 引入参数对象
  24. 分解复杂判断
  25. 引入契约式设计
  26. 避免双重否定
  27. 去除上帝类
  28. 为布尔方法命名
  29. 去除中间人对象
  30. 尽快返回
  31. 使用多态代替条件判断

Sean 表示,他打算将这些重构内容制成电子书发布在 LosTechies 网站上。如果您对这些重构方式感兴趣,可以下载代码并做进一步的尝试。

2009-09-06 11:528469
用户头像

发布了 157 篇内容, 共 60.0 次阅读, 收获喜欢 6 次。

关注

评论

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

【自驱型成长】——控制感

LeifChen

压力 控制感 8月日更 自驱型成长

部署MinIO存储服务的四种方式

liuzhen007

8月日更

MySQL 系列教程之(四)MySQL 中的数据类型

若尘

MySQL 数据库 8月日更

架构实战营 毕业设计:设计电商秒杀系统

Ahu

QDS04 TensorFlow

耳东@Erdong

tensorflow 8月日更 qds

架构训练营毕业总结

Neil43

架构训练营

Seata搭建与分布式事务入门

码农参上

SpringCloud spring cloud alibaba seata 8月日更

从0开始的TypeScriptの七:函数

空城机

typescript 大前端 8月日更

https 与 http 区别

一个大红包

8月日更

【设计模式】中介者模式

Andy阿辉

C# 后端 设计模式 8月日更

手撸二叉树之二叉树的堂兄弟节点

HelloWorld杰少

数据结构与算法 8月日更

万字文肝Python基础知识

ベ布小禅

8月日更

有书香气的七夕节

箭上有毒

8月日更

crudapi增删改查接口零代码产品成功案例之商会联盟卡项目

crudapi

Java Vue 零代码 crudapi qusar

毕业设计:电商秒杀系统

唐高为

模式包括问题和解决方案

escray

学习 极客时间 如何落地业务建模 8月日更

Web框架Gin | Gin 中间件

xcbeyond

Go 语言 gin gin-middleware 8月日更

JavaScript继承的实现方式:原型语言对象继承对象原理剖析

zhoulujun

JavaScript

梳理会在Scrum中是活动还是事件?——《Scrum指南》重读有感(6)

Bruce Talk

Scrum 敏捷 随笔 Agile

前端之算法(四)快速排序

Augus

算法 8月日更

「让我们一起Golang」让协程自己kill自己

Regan Yue

协程 Go 语言 8月日更

【Flutter 专题】66 图解基本约束 Box (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Git 应该用 fetch 还是 pull

HoneyMoose

【Vue2.x 源码学习】第三十五篇 - 组件部分 - Vue.component 实现

Brave

源码 vue2 8月日更

Linux之rcp命令

入门小站

Linux

在线日期计算器

入门小站

工具

实战架构训练营总结

贯通

#架构实战营

持久层Mybatis中对于SQL注入的问题,聊聊你的想法?

卢卡多多

SQL优化 8月日更

Android开发:Android Studio插件GsonFormat根据Json自动生成javabean的方法

三掌柜

8月日更 8月

配置Flink流式应用(九)

Databri_AI

flink Kubernetes YARN

python-类,对象--》多态,封装,继承

加里都好

Python

31天重构指南_研发效能_赵劼_InfoQ精选文章