阿里云飞天发布时刻,领先大模型限免,超7000万 tokens免费体验 了解详情
写点什么

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

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

关注

评论

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

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

道长

极客大学架构师训练营

做好分库分表其实很难之二

架构师修行之路

微服务 分库分表

古北水镇的夜

张晓楠

生活 摄影

LeetCode题解:111. 二叉树的最小深度,递归,JavaScript,详细注释

Lee Chen

大前端

LeetCode题解:104. 二叉树的最大深度,递归,JavaScript,详细注释

Lee Chen

大前端 LeetCode

java安全编码指南之:lock和同步的正确使用

程序那些事

java安全编码 java安全 java安全编码指南 java编码

从联想ThinkStation工作站,窥见工具文明的新纪元

脑极体

记一次MySQL日期范围查询优化

李印

MySQL SQL优化

内存条的讲解

亚兰—硅的传奇official

原创 内存 硬件 计算机 哔哩哔哩

2020第十三届(南京)智慧城市技术与应用产品展览会

InfoQ_caf7dbb9aa8a

快讯2020第十三届亚洲国际物联网展览会-南京站

InfoQ_caf7dbb9aa8a

全屋智能2020第十三届(南京)国际智能家居展览会

InfoQ_caf7dbb9aa8a

2020第十三届南京国际智慧新零售暨无人售货展览会

InfoQ_caf7dbb9aa8a

用NOSql给高并发系统加速

架构师修行之路

nosql redis 分布式 微服务

MySQL事务隔离级别

长沙造纸农

MySQL 事务隔离级别 mysql事务 事务 MySQL 运维

架构师训练营第 1 期 - 第四周学习总结

Anyou Liu

极客大学架构师训练营

Spring Cloud 微服务实践(7) - 日志

xiaoboey

kafka 微服务 Spring Cloud 日志 spring cloud stream

关于国际化语言 Intl

西贝

Java 大前端 国际化 格式化

2020南京国际工业互联网及工业通讯展览会

InfoQ_caf7dbb9aa8a

架构师训练营第三周作业

Wee权

JDK 中的栈竟然是这样实现的?

王磊

Java 数据结构和算法

“海外同步优惠”与“中国专享折扣”十大必败榜抢先放送

爱极客侠

手把手教你AspNetCore WebApi:Serilog(日志)

AI代笔

ASP.NET Core web api serilog

对不起,学会这些 Linux 知识后,我有点飘

苹果看辽宁体育

Linux 后端 操作系统 计算机

典型的大型互联网应用系统的技术方案和手段

20年开源老司机手把手教你玩开源——openEuler入门指南

openEuler

Linux 开源 系统操作

架构师作业第三周学习总结

Wee权

坚持写技术博客一年能有多少收获!

小傅哥

Java 面试 架构师 编程经验 技术博客

架构1期第四周作业1-大型互联网系统技术梳理

道长

极客大学架构师训练营

产品分析

时间是一个人最好的证明

产品经理 产品设计

讲一讲我所认为的「人生三最」,你或许能够参悟到什么

非著名程序员

程序员 个人成长 时间管理 精力管理

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