亮网络解锁器,解锁网络数据的无限可能 了解详情
写点什么

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

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

关注

评论

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

揭秘!开源软件背后的神秘组织

Apache Flink

大数据 flink 流计算 实时计算

2020 敏捷产品基本盘

Yanel 说敏捷产品

产品 敏捷 产品设计 产品推荐

看完这篇操作系统,和面试官扯皮就没问题了

cxuan

操作系统 计算机基础

【大咖说问大咖】关于开源的那些事 —— PingCAP CTO 黄东旭 Q&A 交流帖

InfoQ写作社区官方

开源 写作平台 大咖说 技术交流 热门活动

提升编程效率:重构

Page

高效工作 敏捷开发 重构 高效

Serverless: 2020年函数计算的冷启动怎么样了

刘宇

多多益善的MacOS文件管理方案

陈东泽 EuryChen

macos Mac apple 提升效率 文件管理

spring注入bean的几种策略模式

王德发

Java Spring Boot 测试驱动开发实战营

太赞了,VSCode 上也能画流程图了!

GitHubDaily

visual-studio GitHub 程序员 vscode 开发者工具

Intellij IDEA2020.x如何安装Lombok插件

龙眼果

开发者工具

学习型组织的修炼之道

Yanel 说敏捷产品

团队管理 项目管理 敏捷 团队协作 组织转型

数据分析的利器-clickhouse概述

流沙

数据库 Clickhouse

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (七)CORRECT边界条件

编程道与术

Java 编程 软件测试 TDD 单元测试

BVR 才是变革的核心

Yanel 说敏捷产品

团队管理 项目管理 敏捷 敏捷开发 敏捷精髓

Android | Tangram动态页面之路(一)需求背景

哈利迪

android

MySQL索引知识介绍

Simon

MySQL 索引结构

用"结构性张力"构建自驱力

Yanel 说敏捷产品

团队管理 敏捷 团队协作 项目

为什么我喜欢的大V拉黑我?

lmymirror

经历 后真相时代 日常思考

KK日知录20200515

kimmking

常见的主从报错集锦

一个有志气的DB

MySQL 主从配置 主从同步

搜商:高效的使用搜索引擎

石云升

高效搜索 搜索技巧 搜商

Kafka零数据丢失的配置方案

奈学教育

kafka kafka配置 kafka数据

何时开始重构?

Page

敏捷开发 重构

真的!只需 “六步” 实现图像特定物体识别!!!

周果

Python OpenCV 计算机视觉 图像识别 物体检测

Java实现Base64

Java

从ClickHouse的名字由来讲起

nauu

数据库 大数据 分布式 OLAP Clickhouse

敏捷团队成员的工作量指标真的那么重要吗?

金生水起

敏捷开发 Scrum精髓 敏捷精髓 Agile

工程师、程序员和产品经理

王泰

程序员 产品经理 IT 软件工程师 工程师思维

近期工作的几点感想

Leiy

app退出登录

MySQL备份基础

一个有志气的DB

MySQL 数据

【Howe学爬虫】全国统计用区划代码爬取

Howe

Java 爬虫

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