【《重构 改善既有代码的设计》学习笔记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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySql数据库备份与恢复——使用mysqldump 导入与导出方法总结

    MySql数据库备份与恢复——使用mysqldump 导入与导出方法总结MySql数据库备份与恢复——使用mysqldump导入与导出方法总结mysqldump客户端可用来转储数据库或搜集数据库进行备份或将数据转移到另一个sql服务器(不一定是一个mysql服务器)。转储包含创建表和/或装载表的sql语句。ps、如果在服务器上进行备份,并且表均为myisam表,应考虑使用mysqlhotcopy,因为可以更快地进行备份和恢复。本文从三部分介绍了mys…

    2022年6月13日
    72
  • Spark快速入门系列(三)深入理解RDD

    Spark快速入门系列(三)深入理解RDD这里写目录标题深入RDD二级目录三级目录深入RDD目标深入理解RDD的内在逻辑,以及RDD的内部属性(RDD由什么组成)案例需求给定一个网站的访问记录,俗称Accesslog计算其中出现的独立IP,以及其访问的次数二级目录三级目录…

    2022年7月26日
    6
  • [中国大学Mooc]Web前端测试题

    [中国大学Mooc]Web前端测试题1、web前端开发中“web”指的是: C web系统2、以下哪个概念或者哪个功能属于“前端”: A、web系统中以网页的形式为用户提供的部分,用户能接触到的部分;3、以下关于网页源文件的叙述不正确的是: B、网页源文件客户端是看不见的;4、以下关于前端技术标准叙述不正确的是: B、技术标准是由W3School组织提供的;5、以下…

    2022年8月18日
    3
  • pycharm 激活code 2022【最新永久激活】

    (pycharm 激活code 2022)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1…

    2022年3月31日
    582
  • 单链表排序java_快速排序链表

    单链表排序java_快速排序链表难易程度:★★重要性:★★★链表的排序相对数组的排序更为复杂些,也是考察求职者是否真正理解了排序算法(而不是“死记硬背”) 链表的插入排序 publicclassLinkedInsertSort{staticclassListNode{intval;ListNodenext;Lis…

    2022年10月10日
    0
  • Vue安装及环境配置、开发工具

    Vue安装及环境配置、开发工具vue安装环境搭建提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录vue安装环境搭建前言一、node.js安装和配置1.下载安装node.js2.配置默认安装目录和缓存日志目录3.node.js环境配置4.配置淘宝镜像源二、使用步骤1.引入库2.读入数据总结前言vue前端框架的环境搭建一、node.js安装和配置1.下载安装node.js官网下载最新版本:https://nodejs.org/en/download/可以下载安装包(安装教程见:http

    2022年6月11日
    53

发表回复

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

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