参考书籍:

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

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

目录

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

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

第2章:重构的原则

第3章:代码的坏味道

第4章:构筑测试体系

第5章:介绍重构名录

第6章:第一组重构

第7章:封装

第8章:搬移特性

第9章:重新组织数据

第10章:简化条件逻辑

第11章:重构API

第12章:处理继承关系

关于重构的定义

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

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

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

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

随机推荐

  1. [Go] 利用函数类型实现封装中的回调

    当进行业务逻辑开发的时候,经常要进行封装,封装成独立的类文件,在类文件的属性中预留出函数类型的API 在调用该类文件中某些方法的时候,也根据业务需要调用类属性中的函数, 在主业务中可以传递特定的函数注 ...

  2. BITCTF-MISC

    MISC 以此笔记来记录本菜鸡做misc的历程 签到85 首先看题 提示base85 打开kali,使用python的base64库来解码(内有base85解码) (其实只要输python3即可 我还 ...

  3. ism 发布

    ism 发布 ism 发布 ism 发布

  4. lxml

    lxml导入 Element类 节点List相关操作 节点属性相关操作 节点文本相关操作 节点遍历相关操作 节点序列化 ElementTree类 解析文件和字符串 对象解析 增量解析 事件驱动解析 命 ...

  5. 改变JAVA窗体属性的操作方法

    在本篇内容里小编给大家详细分析了关于改变JAVA窗体属性的操作方法和步骤,需要的朋友们学习下. 若将JDK版本升级到最新版本,Java窗体就可以简单实现窗体的透明效果,用户可以通过拉动滑块(Slide ...

  6. Astyle 一键格式化项目代码

    代码格式化差异问题: 一个团队有多个开发,因开发习惯不同,开发时少添加了空格.换行等. 格式化代码时,一般会将整个文档格式化,代码提交时会发现未知的修改项. Astyle格式化工具 官网下载地址:Ar ...

  7. Java生鲜电商平台-商城优惠券设计要点复盘与总结

    Java生鲜电商平台-商城优惠券设计要点复盘与总结 Java生鲜电商平台本文将从优惠券设计用户端,需求端,业务流程全方案解析优惠券设计方案 为什么要设计优惠券 设计优惠券的核心:拉新和促活 新产品上线 ...

  8. SSM框架之Mybatis(7)延迟加载、缓存及注解

    Mybatis(7)延迟加载.缓存及注解 1.延迟加载 延迟加载: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据.延迟加载也称懒加载. **好处:**先从单表查询,需要时再从关联表去关 ...

  9. WGS84、WebMercator、GCJ02和BD09坐标系简介与转换

    WGS84(GPS): 地心坐标系,空间直角坐标系,原点与地球质心重合,为GPS采用的坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系. 通过GPS可以直接获取WGS84下的坐标(B,L, ...

  10. Linux之facl----设置文件访问控制列表(详解)

    setfacl命令 是用来在命令行里设置ACL(访问控制列表) 选项 -b,--remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留. -k,--remove ...