Agentic AI、具身智能、强化学习框架、端侧大模型……来QCon上海站,感受AI的未来! 了解详情
写点什么

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

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

关注

评论

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

LeetCode-14. 最长公共前缀(java)

bug菌

9月日更 Leet Code 9月月更

遥居前列!华为云GaussDB再获行业权威验证

华为云开发者联盟

数据库 后端 华为云 企业号九月金秋榜

Linux系统安装MySQL

MySQL Centos 7 navicat 9月月更

自适应熔断原理分析与源码解读

万俊峰Kevin

Go golang 熔断 go-zero 限流熔断

看得懂又好看的数学书,万人亲测的硬核教程!

博文视点Broadview

Spring5源码14-SpringMVC-HandlerMapping

Java快了!

springmvc

从系统架构分析安全问题及应对措施

京东科技开发者

网络安全 安全 系统架构 信息安全 ssl

喜提“双黄蛋” | 旺链科技亮相2022世界人工智能大会

旺链科技

区块链 产业区块链 企业号九月金秋榜 人工智能大会

Java基础——编码命名规范

守夜人st

java; 编程语言‘ 9月月更

关于Java 同步工具和组合类的线程安全性分析

Java快了!

java;

数据中台改名DaaS平台?究竟什么是数据即服务(DaaS)?

雨果

DaaS数据即服务

我用WireShark结合一款神器成功绘画出入侵者的地图!

wljslmz

Wireshark 9月月更

Hugging Face:成为机器学习界的“GitHub”

OneFlow

神经网络 机器学习

资深技术笔译总结的这7条建议,看完提PR效率倍增

OpenHarmony开发者

OpenHarmony

数据库的视图怎么用?

阿柠xn

MySQL 运维 视图 数据库· 9月月更

New Wireless Technologies to Help Meet Aviation Demands IPQ6018/IPQ6000/IPQ6010/Wallys

wallys-wifi6

IPQ6010 ipq6018 IPQ6000

天翼云加码边缘计算,让普惠算力触手可及!

天翼云开发者社区

【FAQ】接入华为应用内支付服务常见问题解答

HarmonyOS SDK

云图说丨初识分布式消息服务Kafka版

华为云开发者联盟

云计算 企业号九月金秋榜

技术解读:Dragonfly 基于 P2P 的智能镜像加速系统 | 龙蜥技术

OpenAnolis小助手

开源 dragonfly p2p 龙蜥技术 镜像加速

Spring 源码阅读 29:基于 XML 配置初始化 Spring 上下文过程总结(10+详细流程图)

Java快了!

xml

LeetCode-20. 有效的括号(java)

bug菌

9月日更 Leet Code 9月月更

嗖的一下就码出一个CLI

蛋先生DX

typescript 前端 命令行 cli 代码生成

Java进阶(八)Java加密技术之对称加密、非对称加密、不可逆加密算法

No Silver Bullet

对称加密 非对称加密 9月月更 不可逆加密

消除 JavaScript 的一些“异味”

掘金安东尼

JavaScript 前端 9月月更

如何重新评估未完成的工作

ShineScrum

Scrum 敏捷 DoD 未完成的工作

SPL工业智能:发现时序数据的异常

石臻臻的杂货铺

SPL 9月月更

美团前端一面常见面试题

beifeng1996

JavaScript 前端

《小米创业思考》之三:互联网七字诀

郭明

读书笔记

Karmada v1.3:更优雅 更精准 更高效

华为云开发者联盟

容器 云原生 后端 华为云 企业号九月金秋榜

保利威重磅开启「828 B2B企业节 · 专场峰会 」!

科技怪咖

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