| 内容提要 | 第1-8页 |
| 第1章 绪论 | 第8-11页 |
| 第2章 来自银行金融系统EGL 项目的苦恼 | 第11-14页 |
| ·公司背景 | 第11页 |
| ·项目背景 | 第11-12页 |
| ·团队人员组成 | 第12页 |
| ·开发工具 | 第12页 |
| ·项目开发和维护规模 | 第12-13页 |
| ·银行金融系统的功能框架 | 第13-14页 |
| 第3章 EGL 语法特点分析 | 第14-19页 |
| ·什么是 EGL | 第14-16页 |
| ·EGL 的运行 | 第16页 |
| ·EGL 项目的开发过程 | 第16-17页 |
| ·EGL 程序结构 | 第17页 |
| ·内部规范EGL 语法提要 | 第17-19页 |
| 第4章 重构原理和银行系统重构方法的研究 | 第19-24页 |
| ·什么是重构 | 第19-20页 |
| ·为什么要对银行金融系统的代码进行重构 | 第20-21页 |
| ·什么时候是银行金融系统项目重构的最佳时机 | 第21-22页 |
| ·怎样对银行金融系统进行代码重构 | 第22-24页 |
| 第5章 银行金融系统中如何应用重构理论 | 第24-47页 |
| ·银行金融系统代码重构的难点 | 第24-25页 |
| ·银行金融系统中的“臭味”代码研究 | 第25-30页 |
| ·Duplicated Code 重复的代码 | 第25-26页 |
| ·Long Method 过长函数 | 第26页 |
| ·Large Class 过大类 | 第26页 |
| ·Divergent Change 发散式变化 | 第26-27页 |
| ·Shotgun Surgery 霰弹式修改 | 第27页 |
| ·Lazy Class 冗赘类 | 第27页 |
| ·Speculative Generality 夸夸其谈未来性 | 第27-28页 |
| ·Temporary Field 令人迷惑的暂时值域 | 第28页 |
| ·Message Chains 过度耦合的消息链 | 第28-29页 |
| ·Middle Man 中间人 | 第29页 |
| ·Inappropriate Intimacy 狎昵关系 | 第29页 |
| ·Alternative Classes with Different Interfaces 异曲同工的类 | 第29页 |
| ·Comments 过多的注释 | 第29-30页 |
| ·具体重构方法名录 | 第30-40页 |
| ·Decompose Conditional 分解条件式 | 第30-31页 |
| ·Extract Method 提炼方法 | 第31-33页 |
| ·Extract Class 提炼程序 | 第33-34页 |
| ·Extract Interface 提炼接口 | 第34-35页 |
| ·Hide Delegate 隐藏代理关系 | 第35页 |
| ·Inline Class 将类内联化 | 第35-36页 |
| ·Move Method 搬移函数 | 第36-38页 |
| ·Move Field 搬移值域 | 第38-39页 |
| ·Remove Middle Man 移出中间人 | 第39-40页 |
| ·银行金融系统中重构测试方法的研究 | 第40-47页 |
| ·EGL 程序测试的现状 | 第40-41页 |
| ·EGL 程序如何实现自动化的测试 | 第41-47页 |
| 第6章 银行金融系统重构的案例 | 第47-57页 |
| ·找寻有“臭味”的代码 | 第47-50页 |
| ·现象一:大量重复的代码 | 第47-49页 |
| ·现象二:大而全的程序 | 第49页 |
| ·现象三:公共模块 | 第49-50页 |
| ·重构有“臭味”的代码 | 第50-54页 |
| ·大量重复代码的重构 | 第50-53页 |
| ·大而全程序的重构 | 第53页 |
| ·公共模块的提炼 | 第53-54页 |
| ·实施中所遇到的问题 | 第54-55页 |
| ·最佳实践方式的摸索 | 第55-57页 |
| 第7章 总结 | 第57-58页 |
| 参考文献 | 第58-61页 |
| 致谢 | 第61-62页 |
| 摘要 | 第62-65页 |
| ABSTRACT | 第65-67页 |