【《重构 改善既有代码的设计》学习笔记5】重构列表

本篇文章的内容来自《重构 改善既有代码的设计》一书学习笔记整理并且加上自己的浅显的思考总结!重构列表,为重构提供一个坚实的起点,支持后面的重构工作!1、重构的记录格式书中说:每个重构手法都有如下五个部分。名称(name),建造一个重构词汇表,名称是很重要的。简单的概要(summary),介绍此重构手法的使用情景,以及它做的事情。动机(motivation),为什么需要这…

大家好,又见面了,我是全栈君。

本篇文章的内容来自《重构 改善既有代码的设计》一书学习笔记整理并且加上自己的浅显的思考总结!

重构列表,为重构提供一个坚实的起点,支持后面的重构工作!

1、重构的记录格式

书中说:每个重构手法都有如下五个部分。

  • 名称(name),建造一个重构词汇表,名称是很重要的。

  • 简单的概要(summary),介绍此重构手法的使用情景,以及它做的事情。

  • 动机(motivation),为什么需要这个重构? 什么情况下不改使用这个重构。

  • 做法(mechanics),简明扼要的一步一步介绍如何进行此重构。

  • 范例(examples),十分简单的一个例子说明此重构手法如何运作。

在说明一下,概要 包括三个部分:

(1)一句话,介绍这个重构能够帮助解决的问题;

(2)一段简短的陈述,介绍你应该做的事;

(3)一幅速写图,简单的展示重构前后示例。有时候一图胜千言,可用UML图等表达清楚即可。

在说明一下,做法 ,如果你知道该用哪个重构,但记不清具体步骤,可以参考 “做法”部分。

【后面学习重构手法会具体的根据上述格式进行,每一项重构手法自成一体,并且根据整理,这个重构列表可以作为参考工具】

2、寻找应用点

很多重构要求你找到对于某个函数、某个字段或类的所有引用点。【目前很多开发工具如java的Eclipse和Idea都能相当准确找到程序元素的引用点】

不要盲目的查找-替换。应该检查每一个引用点,确定它的确指向你想要替换的东西。

3、这些重构手法有多成熟

重构的基本技巧——小步前进,频繁测试。

许多重构手法,都涉及向系统引入设计模式。设计模式,为重构行为提供了目标。模式和重构之间有一种与生俱来的关系。模式是你希望到达的目标,重构则是到达之路.

运用重构的时候,请记住: 它们仅仅是一个起点。 在这个起点上,然后不断地努力提高自己的重构能力,这才是重构最终带给我们的。

总结

这一章 是为了后面的重构手法介绍打下基础,一起开启重构手法之路的学习

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121050.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java集合源码分析(二):List与AbstractList

    java集合源码分析(二):List与AbstractList概述List应该接口是Collection最常被使用的接口了。其下的实现类皆为有序列表,其中主要分为Vector,ArrayList,LinkedList三个实现类,其中Vecotr又

    2022年8月16日
    11
  • 2021年程序员平均工资_公司薪酬制度调查报告

    2021年程序员平均工资_公司薪酬制度调查报告根据中国互联网络信息中心(CNNIC)近日发布第47次《中国互联网络发展状况统计报告》。截至2020年12月,我国网民规模达9.89亿,较2020年3月增长8540万,互联网普及率达70.4%。截至2020年12月,我国在线教育、在线医疗用户规模分别为3.42亿、2.15亿,占网民整体的34.6%、21.7%。我国网上零售额达11.76万亿元,较2019年增长10.9%。其中,实物商品网上零售额9.76万亿元,占社会消费品零售总额的24.9%。截至2020年12月,我国网络购物用户规模达7.82亿,

    2022年10月11日
    2
  • python—最大公约数和最小公倍数

    python—最大公约数和最小公倍数最大公约数defhcf(x,y): ifx<=0ory<=0: return res=0 ifx>y: small=y else: small=x foriinrange(1,small+1): ifx%i==0andy%i==0: res=iif__name__==’__main__’: print(hcf(12,24)) #内置模块importmathmath.

    2022年5月16日
    47
  • SpringMvc工作原理学习总结

    SpringMvc工作原理学习总结SpringMvc工作原理了解SpringMvc之前先看看Mvc的工作原理1、MVC工作原理M:Model(完成业务逻辑Service/dao/entity/)V:View(完成界面渲染jsp/html)C:Controller(控制器->类似于CPU接受请求->调用M->返回V)MVC工作原理图2、SpringMvc工作原理Spring和SpringMvc的关系:SpringMVC是一个MVC的开源框架,SpringMVC是Spring的一个

    2022年5月15日
    47
  • FileProvider的权限路径

    FileProvider的权限路径

    2021年10月2日
    72
  • VMware安装Centos7超详细过程(图文)[通俗易懂]

    VMware安装Centos7超详细过程(图文)[通俗易懂]原文:https://www.jianshu.com/p/ce08cdbc4ddb?utm_source=tuicool&utm_medium=referral本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下1.软硬件准备软件:推荐使用VMwear,我用的是VMwear12镜像:CentOS7,如…

    2022年4月27日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号