写点什么

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

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

关注

评论

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

可完全替代FTP的文件传输工具大集合

镭速

文件传输工具 替代FTP FTP传输文件

企业如何选择安全又稳定的文件传输协议

镭速

大文件传输 文件传输协议

一图看懂CodeArts Governance 三大特性,带你玩转开源治理服务

华为云PaaS服务小智

云计算 软件开发 华为云

枚举探秘:Java中的神奇力量!

互联网工科生

枚举 java

Java和Python对比,看完这篇你就知道有什么不同了

树上有只程序猿

Python java

智慧公厕厂家为城市智慧化建设提供城市卫生升级的力量

光明源智慧厕所

智慧厕所 智慧公厕 厕所改造 公厕改造

深度学习应用开发示例之像素分割

矩视智能

深度学习 像素分割

如何开发区块链应用程序:分步指南

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 NFT开发

MySQL5.5安装教程

小齐写代码

英特尔宣布Intel 4已大规模量产,“四年五个制程节点”计划又进一步

E科讯

TiDB 7.4 发版:正式兼容 MySQL 8.0

TiDB 社区干货传送门

打造次世代分析型数据库(六):如何从零实现向量化引擎

腾讯云大数据

数据库

广交会场外蹭热度 第六届广州五金交易会如期召开!

极客天地

七个 LLM 的狼人杀之夜;马斯克的星链残骸会“砸死人”?OpenAI 安全漏洞曝光丨RTE开发者日报 Vol.66

声网

测试过程效率的提升和演变

老张

软件测试 研发效能 质量保障

Postman 调试 WebSocket 接口完整指南

Liam

Postman websocket 接口调试 测试工具 API 测试

NSDT孪生编辑器助力智慧城市

3D建模设计

智慧城市 数字孪生

浅析斐波那契数列在代码中的应用

emanjusaka

Java 后端

OpenHarmony社区运营报告(2023年9月)

OpenHarmony开发者

Java基础面试题【七】线程池

派大星

Java 面试题

基于知识图谱建模、全文检索的智能知识管理库(源码)

金陵老街

java

如何借助CDC快速实现实时数据传输?

RestCloud

数据同步 ETL CDC

沐浴阳光,贴心陪伴,全屋智能大模型应用论坛即将发布小度全屋智能新产品

新消费日报

mac软件推荐:CAD迷你看图中文版

胖墩儿不胖y

Mac软件 cad软件 CAD看图工具

软件测试/测试开发丨Postman实战练习 学习笔记

测试人

Python 软件测试 测试开发

Spring Cloud Gateway:打造可扩展的微服务网关

程序员万金游

#java #微服务 #Spring #SpringCloud

业财融合潮流下,构建国有企业全面预算管理体系

智达方通

业财融合 全面预算管理

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