参考书籍:

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

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

目录

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

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

第2章:重构的原则

第3章:代码的坏味道

第4章:构筑测试体系

第5章:介绍重构名录

第6章:第一组重构

第7章:封装

第8章:搬移特性

第9章:重新组织数据

第10章:简化条件逻辑

第11章:重构API

第12章:处理继承关系

关于重构的定义

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

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

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

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

随机推荐

  1. [Go] 使用net包作为tcp客户端读取http

    1.tcp的客户端,并且直接读取http协议的全部内容,每次读取4096字节,直到最后一个字节是\n并且读取的长度小于4096 conn, err := net.Dial("tcp" ...

  2. 一步一步创建聊天程序2-利用epoll来创建简单的聊天室

    如图,这个是看视频时,最后的作业,除了客户端未使用select实现外,其它的要求都有简单实现. 服务端代码如下: #include <stdio.h> #include <strin ...

  3. Softmax用于手写数字识别(Tensorflow实现)-个人理解

    softmax函数的作用   对于分类方面,softmax函数的作用是从样本值计算得到该样本属于各个类别的概率大小.例如手写数字识别,softmax模型从给定的手写体图片像素值得出这张图片为数字0~9 ...

  4. 关于spring boot上手的一点介绍

    在spring官网网址 https://spring.io/guides 下,有许多相关介绍,包括可以构建的例子程序. 使用intellij idea,可以通过新建 spring boot initi ...

  5. vue 路由对象

    路由对象在使用了 vue-router 的应用中,路由对象会被注入每个组件中,赋值为 this.$route ,并且当路由切换时,路由对象会被更新. so , 路由对象暴露了以下属性: 1.$rout ...

  6. Redis开发与运维:特性

    Redis 特性 速度快 内存数据库 L1 cache reference 读取CPU的一级缓存 0.5 ns Branch mispredict (转移.分支预测) 5 ns L2 cache re ...

  7. ReactNative: 创建自定义List列表组件

    一.介绍 在App中,很多数据消息显示都是一行行动态展示的,例如新闻标题,其实每一条新闻标题都可以独立成一个简单的列表组件,之前我们使用Text组件将数据都写死了,为了提高组件的灵活性,我们可以使用T ...

  8. Node.js module export async function

    一.Demo 1.首先定义 module 文件:bbb.js const fs = require("fs"); function readFileSync() { let res ...

  9. 2019年腾讯最新Java工程师面试题

    一.单选题(共21题,每题5分) 1在正则表达式当中下面那一个字符集表示非空格字符   A.[:graph:] B.[:digit:] C.[:space:] D.[:alpha:] 参考答案:A 答 ...

  10. 10分钟彻底理解Redis的持久化机制:RDB和AOF

    作者:张君鸿 juejin.im/post/5d09a9ff51882577eb133aa9 什么是Redis持久化? Redis作为一个键值对内存数据库(NoSQL),数据都存储在内存当中,在处理客 ...