写点什么

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

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

关注

评论

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

重磅预告 | Apache SeaTunnel接入MCP,即将解锁模型上下文协议超能力!

白鲸开源

开源 AI 大模型 Apache SeaTunnel MCP

AI题库软件系统的技术难点

北京木奇移动技术有限公司

软件外包公司 AI题库系统 题库软件系统

企业跨国组网怎么选?MPLS与SD-WAN方案对比

Ogcloud

企业组网 异地组网 跨国网络 国际网络专线 跨国网络专线

公链开发及其配套设施:钱包与区块链浏览器

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 公链开发代币开发

用 AI 快速开发一款小程序

悟空聊架构

CodeBuddy首席试玩官

Shotcut 25.05 (Linux, macOS, Windows) - 免费开源视频编辑器

sysin

视频编辑

源码交付+可控部署:用户行为分析系统的落地经验

ClkLog

开源 数据分析 埋点 用户行为分析 客户画像

通义灵码入职表现实测:蔚来汽车AI 生成代码占比在 30% 以上

阿里巴巴云原生

阿里云 云原生 通义灵码

交易所功能设计的核心架构与创新实践

区块链软件开发推广运营

交易所开发 链游开发 链游开发dapp开发 代币开发 代币开发公链开发

和鲸支持!南大人工智能通识课,让每个学生都懂AI

ModelWhale

【FAQ】HarmonyOS SDK 闭源开放能力 —Share Kit(2)

HarmonyOS SDK

harmoyos

VMware NSX 4.2.2 发布,新增功能概览

sysin

nsx

A10 ACOS 6 - 专为现代应用程序设计的开放式云就绪操作系统

sysin

A10

文献解读-Sentieon DNAscope LongRead – A highly Accurate, Fast, and Efficient Pipeline for Germline Variant Calling from PacBio HiFi

INSVAST

长读长测序 Sentieon 变异分析 DNAscope LongRead 生信分析服务

手把手教你抓取京东商品评论:API 接口解析与 Python 实战

tbapi

京东商品评论接口 京东API 京东商品评论API 京东评论接口 京东评论内容采集

通义灵码入职表现实测:蔚来汽车AI 生成代码占比在 30% 以上

阿里云云效

阿里云 云原生 通义灵码

YashanDB V23.4 LTS 正式发布|两地三中心、库级闪回重磅特性上线,生产级可用性再升级

极客天地

破解RL训练崩溃难题,快手联合中科院、清华、南大提出多模态奖励模型R1-Reward!

快手技术

人工智能 大模型

天下拍-资产拍卖经典案例分享

至存网络

拍卖 拍卖系统 拍卖软件 艺术品拍卖 资产拍卖

什么是区块链dapp开发?它能做什么?

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

挖到项目中的2高危和中危漏洞

悟空聊架构

CodeBuddy首席试玩官

Apple Safari 18.5 - macOS 专属浏览器 (独立安装包下载)

sysin

safari

A10 Thunder 6.0.5 - 应用交付与负载均衡

sysin

A10

A10 vThunder 6.0.5 - 虚拟化应用交付控制器 (ADC)

sysin

A10

重塑“DATA+AI“的共生范式:DataBuilder如何赋能企业数据价值跃迁

数造万象

人工智能 AI 数据 数据集 Data + AI

他为SeaTunnel写下10+高质量PR,还把开源带进了公司生产线!

白鲸开源

京东商品列表接口 item_search 深度解析

tbapi

京东API 关键词搜索京东商品接口 京东商品列表接口 京东数据采集 京东搜索接口

WhaleTunnel 信创数据库适配能力全景图:打通国产数据生态的最后一公里

白鲸开源

数据库 大数据 信创 白鲸开源 WhaleTunnel

AI for All,Code for All|七牛云 AI 开源项目扶持计划全面启动

七牛云

开源 AI

数安智用·科技强警|万里红依托“三大优势×五大能力”受邀参展第十二届警博会

新消费日报

10 分钟快速搭建一款面试刷题小程序

悟空聊架构

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