50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

Mybatis批量插入数据

源字节1号

软件开发 后端开发

WorkPlus移动门户,助力企业信息系统移动智慧互联

BeeWorks

仅靠七个步骤,4面通过拿offer,终“跳进”字节跳动

小二,上酒上酒

面试 面试题

找到字符串中所有字母异位词

掘金安东尼

算法 10月月更

【LeetCode】滑动窗口的最大值Java题解

Albert

LeetCode 10月月更

手写一个Redux,深入理解其原理-面试进阶

beifeng1996

React

632页!我熬夜读完这份“高分宝典”,竟4面拿下字节跳动offer

小二,上酒上酒

Java 面试

HTML标准第二章总结:HTML的基础设施

水鱼兄

聊聊面试中的过滤器与拦截器

TimeFriends

实时营销引擎在vivo营销自动化中的实践 | 引擎篇04

vivo互联网技术

服务器 架构设计 引擎

一次性学懂Excel中的Power Query和Power Pivot使用

博文视点Broadview

详解数仓的锁相关参数及视图

华为云开发者联盟

数据库 后端 华为云 企业号十月 PK 榜

Linux策略路由详解

京东科技开发者

数据库 Linux 公有云 云主机 策略路由

crossorigin属性:为什么它是避免tainted canvases的关键?

水鱼兄

说说React-Router底层实现?-面试进阶

beifeng1996

React

开发者 J 有意思|1024 开发者嘉年华活动正式启幕

Jina AI

人工智能 开源 开发者 工程师 1024

面试官:说说React-SSR的原理

beifeng1996

React

LinkedList源码分析(三)

知识浅谈

linkedlist 10月月更

全球第一!新一代云原生实时数仓 SelectDB 登顶 ClickBench 榜单!

SelectDB

性能测试 Clickhouse 分析型数据库 数仓 SelectDB

使用 SAP BTP 创建一个 Spring Boot Java 应用

汪子熙

云原生 SAP Netweaver 10月月更 btp

搞AI开发,你不得不会的PyCharm技术

华为云开发者联盟

人工智能 代码 华为云 企业号十月 PK 榜

一文读懂web标准的基石:web IDL

水鱼兄

结构化克隆:浏览器的序列化机制

水鱼兄

一次磁盘占用率 100% 的排查记录

悟空聊架构

Docker 磁盘 悟空聊架构

Java的八种基本数据类型

共饮一杯无

Java 基本数据类型 10月月更

以整数解析为例,如何读懂标准里的算法?

水鱼兄

疫情之后,幸获内推,4面京东拿下offer(Java后台研发岗)

小二,上酒上酒

Java 面试

安全专属的IM即时通讯平台,WorkPlus信创国产化解决方案

BeeWorks

Java中的常量和变量

共饮一杯无

Java 10月月更 常量与变量

2022云栖大会|EMAS专项嘉宾领票通道现已开启

移动研发平台EMAS

云计算 阿里云 低代码 云栖大会 行业峰会

问:你是如何进行react状态管理方案选择的?

beifeng1996

React

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