参考书籍:

《重构 改善既有代码的设计 第2版》马丁 福勒著 人民邮电出版社

马丁 福勒的其他著作:《分析模式》,《UML精粹》,《领域特定语言》

目录

这本书一共有12章,像代码的坏味道,测试体系这类词已经屡见不鲜了。

第1章:重构,第一个示例

第2章:重构的原则

第3章:代码的坏味道

第4章:构筑测试体系

第5章:介绍重构名录

第6章:第一组重构

第7章:封装

第8章:搬移特性

第9章:重新组织数据

第10章:简化条件逻辑

第11章:重构API

第12章:处理继承关系

关于重构的定义

作者对于重构的定义有着非常严谨的要求,我提炼一下,大概是这个意思:

在不改变软件可观察行为的前提下,提高代码可读性。

嗯,差不多没了。关于代码可读性这个话题是具有一定适应范围的,对于一个简单的应用并不显得重要,但对于复杂的业务系统就显得十分关键。试想一下,如果5000行代码写的乱七八糟还能咬咬牙硬着头皮看一下;倘若是50万行乱七八糟的代码......就只能......你懂的!

代码的可读性对于后续代码维护,代码修改起到了相当重要的铺垫作用。

随机推荐

  1. 《软件安装》VMware 安装 centos8

    上期问题回顾 搞技术的同学应该都听过docker,那么请问docker和虚拟机有什么区别呢? 传统的虚拟机架构是:物理机 -> 宿主机操作系统 -> Hypervisor支持 -> ...

  2. springboot打包 出错 Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1

    遇到这个问题看了很多博客之后发现:执行这个语句就行了:mvn clean package -Dmaven.test.skip=true 本文链接:https://blog.csdn.net/weixi ...

  3. Weather with you主题说明

    使用前请确保拥有js权限!!! 源代码: css: /*广告去死*/ #ad_t2 { display: none !important; } #i-amphtml-fill-content { di ...

  4. 【洛谷5643】[PKUWC2018] 随机游走(Min-Max容斥+待定系数法+高维前缀和)

    点此看题面 大致题意: 从一个给定点出发,在一棵树上随机游走,对于相邻的每个点均有\(\frac 1{deg}\)的概率前往.多组询问,每次给出一个点集,求期望经过多少步能够访问过点集内所有点至少一次 ...

  5. gmail 批量删除邮件

    前几天我在 github上 star 了一下 angular 项目,然后8,9 天的时间收到了很多邮件,起初我没注意看具体数量,直接全选-删除.结果删了 3,4 页了还有很多.再仔细一看,一万多封邮件 ...

  6. LeetCode 3: 无重复字符的最长子串 Longest Substring Without Repeating Characters

    题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. Given a string, find the length of the longest substring withou ...

  7. IT兄弟连 HTML5教程 CSS3揭秘 在HTML文档中放置CSS的几种方式

    有很多方法将样式表加入到HTML中,每种方法都有自己的优点和缺点.新的HTML元素和属性已被加入,以允许样式表与HTML文档更简易地组合起来.将样式表加入到HTML中的常用方法有内联样式表.嵌入一张样 ...

  8. SSHD

    SSH基本概述 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定在进行数据传输之前,S ...

  9. strlen函数 (求字符串长度函数)

    strlen函数原型在<string.h>中 #include <stdio.h> #include <string.h> int main(){ char *p= ...

  10. Python抓取妹子图,内含福利

    目标抓取全站妹子封面图片全部爬下来以图片标题命名 分析网页数据结构   妹子图首页 接下来找张图片右击点击检查   想要数据 拿到图片链接直接用浏览器可以访问,但是程序下载有反爬虫,图片直接下载不了需 ...