写点什么

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:528429
用户头像

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

关注

评论

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

从使用者,DBA,内核开发三个不同角度来分析SQL的性能问题

数据库 postgresql sql database

用了这个IntellijIDEA插件以后,我写代码快了10倍!

Java-fenn

Java

JDK19新特性使用详解

Java-fenn

Java

工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(下)

宇宙之一粟

数据库 abap 查询语句 select 9月月更

浮点, 让多少老司机折戟?

浮点数 计算机原理 计算机科学与技术

哪些vue面试题是经常会被问到的

bb_xiaxia1998

Vue 前端

OpenJDK 的原生 Wayland 支持正在取得进展

Java-fenn

Java

各编程语言 + aardio 相互调用示例

Java-fenn

Java

Rust学习入门

Java-fenn

Java

Java服务异常排查定位大图

Java-fenn

Java

kubernetes“雪崩了”

Linux 云原生 #Kubernetes#

数据库路径选择理论与postgreSQL实现

数据库 postgresql 遗传算法

跟着卷卷龙一起学Camera--内存池浅析02

卷卷龙

ISP 9月月更

对领域驱动设计的理解与社交领域的实践

微服务 微服务架构 DDD

JVM 6:类加载与类加载器

Java-fenn

Java

Java 学习 --SpringBoot 常用注解详解(二)

Java-fenn

Java

2022react高频面试题有哪些

beifeng1996

前端 React

RocketMQ&kafka消息队列性能优劣对比

程序员小毕

程序员 面试 RocketMQ 后端 消息队列

percolator的理解与开源实现分析

数据库 分布式 事务

数据库并发控制理论

数据库 postgresql 并发控制 database

Dubbo 泛化调用引发的“血案”

Java-fenn

Java

这些js手写题对我这个菜鸟来说写不出来

helloworld1024fd

JavaScript 前端

面试官:这些js手写题你会吗

helloworld1024fd

JavaScript 前端

MyBatis 查询数据库入门

Java-fenn

Java

Spring MVC 开发入门

Java-fenn

Java

亿级异构任务调度框架设计与实践

Java-fenn

Java

最近几周react面试遇到的题总结

beifeng1996

前端 React

Java服务异常排查定位大图

慕枫技术笔记

后端 9月月更

如何将 SAP 电商云 Spartacus UI 部署到 tomcat 上运行

汪子熙

angular SAP commerce Spartacus 9月月更

后端打工人必知必会21个MySQL表设计的经验准则

程序员小毕

MySQL 数据库 程序员 程序人生 Java 面试

顺序、时钟与分布式系统

分布式 时钟

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