Enviar búsqueda
Cargar
Refactoring 重构
•
Descargar como PPT, PDF
•
1 recomendación
•
1,137 vistas
liufabin 66688
Seguir
重构
Leer menos
Leer más
Denunciar
Compartir
Denunciar
Compartir
1 de 69
Descargar ahora
Recomendados
Refactoring
Refactoring
liufabin 66688
Essential oracle security internal for dba
Essential oracle security internal for dba
maclean liu
Beanstalk protocol
Beanstalk protocol
qianshi
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Ady Liu
Java 6中的线程优化真的有效么?
Java 6中的线程优化真的有效么?
wensheng wei
Sql语句的优化
Sql语句的优化
abszhanghe
软件工程 第十一章
软件工程 第十一章
浒 刘
深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)
wang hongjiang
Recomendados
Refactoring
Refactoring
liufabin 66688
Essential oracle security internal for dba
Essential oracle security internal for dba
maclean liu
Beanstalk protocol
Beanstalk protocol
qianshi
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Ady Liu
Java 6中的线程优化真的有效么?
Java 6中的线程优化真的有效么?
wensheng wei
Sql语句的优化
Sql语句的优化
abszhanghe
软件工程 第十一章
软件工程 第十一章
浒 刘
深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)
wang hongjiang
Java面试知识
Java面试知识
yiditushe
J2ee面试知识
J2ee面试知识
yiditushe
Java多线程编程详解
Java多线程编程详解
yiditushe
大公司的Java面试题集
大公司的Java面试题集
yiditushe
SCJP ch09
SCJP ch09
r82093403
深入剖析Concurrent hashmap中的同步机制(下)
深入剖析Concurrent hashmap中的同步机制(下)
wang hongjiang
Java面试32题
Java面试32题
yiditushe
Hash map导致cpu100% 的分析
Hash map导致cpu100% 的分析
wang hongjiang
Java程序员面试之葵花宝典
Java程序员面试之葵花宝典
yiditushe
Sun java
Sun java
softwaredesigner
测试用例浅析 V1.1
测试用例浅析 V1.1
shijian_dev
jasmine入门指南
jasmine入门指南
Zhicheng Wang
Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
Ho Kim
软件重构
软件重构
longhao
前端测试
前端测试
frontwindysky
前端测试
前端测试
Zheng Biao
快速了解PostgreSQL
快速了解PostgreSQL
正中 周
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
zhen chen
Frank‘s Learning Summary - Agile testing
Frank‘s Learning Summary - Agile testing
Frank Lee
重構—改善既有程式的設計(chapter 12,13)
重構—改善既有程式的設計(chapter 12,13)
Chris Huang
Huangjing renren
Huangjing renren
d0nn9n
Más contenido relacionado
La actualidad más candente
Java面试知识
Java面试知识
yiditushe
J2ee面试知识
J2ee面试知识
yiditushe
Java多线程编程详解
Java多线程编程详解
yiditushe
大公司的Java面试题集
大公司的Java面试题集
yiditushe
SCJP ch09
SCJP ch09
r82093403
深入剖析Concurrent hashmap中的同步机制(下)
深入剖析Concurrent hashmap中的同步机制(下)
wang hongjiang
Java面试32题
Java面试32题
yiditushe
Hash map导致cpu100% 的分析
Hash map导致cpu100% 的分析
wang hongjiang
Java程序员面试之葵花宝典
Java程序员面试之葵花宝典
yiditushe
Sun java
Sun java
softwaredesigner
测试用例浅析 V1.1
测试用例浅析 V1.1
shijian_dev
La actualidad más candente
(11)
Java面试知识
Java面试知识
J2ee面试知识
J2ee面试知识
Java多线程编程详解
Java多线程编程详解
大公司的Java面试题集
大公司的Java面试题集
SCJP ch09
SCJP ch09
深入剖析Concurrent hashmap中的同步机制(下)
深入剖析Concurrent hashmap中的同步机制(下)
Java面试32题
Java面试32题
Hash map导致cpu100% 的分析
Hash map导致cpu100% 的分析
Java程序员面试之葵花宝典
Java程序员面试之葵花宝典
Sun java
Sun java
测试用例浅析 V1.1
测试用例浅析 V1.1
Similar a Refactoring 重构
jasmine入门指南
jasmine入门指南
Zhicheng Wang
Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
Ho Kim
软件重构
软件重构
longhao
前端测试
前端测试
frontwindysky
前端测试
前端测试
Zheng Biao
快速了解PostgreSQL
快速了解PostgreSQL
正中 周
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
zhen chen
Frank‘s Learning Summary - Agile testing
Frank‘s Learning Summary - Agile testing
Frank Lee
重構—改善既有程式的設計(chapter 12,13)
重構—改善既有程式的設計(chapter 12,13)
Chris Huang
Huangjing renren
Huangjing renren
d0nn9n
Oracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.ppt
james tong
5, initialization & cleanup
5, initialization & cleanup
ted-xu
Struts Mitac(1)
Struts Mitac(1)
wangjiaz
網站設計100步
網站設計100步
evercislide
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
javatwo2011
软件设计原则、模式与应用
软件设计原则、模式与应用
yiditushe
前端MVC之backbone
前端MVC之backbone
Jerry Xie
软件工程
软件工程
bill0077
ES5 introduction
ES5 introduction
otakustay
Similar a Refactoring 重构
(20)
jasmine入门指南
jasmine入门指南
Ecma script edition5-小试
Ecma script edition5-小试
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
软件重构
软件重构
前端测试
前端测试
前端测试
前端测试
快速了解PostgreSQL
快速了解PostgreSQL
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
Frank‘s Learning Summary - Agile testing
Frank‘s Learning Summary - Agile testing
重構—改善既有程式的設計(chapter 12,13)
重構—改善既有程式的設計(chapter 12,13)
Huangjing renren
Huangjing renren
Oracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.ppt
5, initialization & cleanup
5, initialization & cleanup
Struts Mitac(1)
Struts Mitac(1)
網站設計100步
網站設計100步
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
软件设计原则、模式与应用
软件设计原则、模式与应用
前端MVC之backbone
前端MVC之backbone
软件工程
软件工程
ES5 introduction
ES5 introduction
Más de liufabin 66688
人大2010新生住宿指南
人大2010新生住宿指南
liufabin 66688
中山大学2010新生住宿指南
中山大学2010新生住宿指南
liufabin 66688
武汉大学2010新生住宿指南
武汉大学2010新生住宿指南
liufabin 66688
天津大学2010新生住宿指南
天津大学2010新生住宿指南
liufabin 66688
清华2010新生住宿指南
清华2010新生住宿指南
liufabin 66688
南京大学2010新生住宿指南
南京大学2010新生住宿指南
liufabin 66688
复旦2010新生住宿指南
复旦2010新生住宿指南
liufabin 66688
北京师范大学2010新生住宿指南
北京师范大学2010新生住宿指南
liufabin 66688
北大2010新生住宿指南
北大2010新生住宿指南
liufabin 66688
Optimzing mysql
Optimzing mysql
liufabin 66688
Mysql Replication Excerpt 5.1 En
Mysql Replication Excerpt 5.1 En
liufabin 66688
Drupal Con My Sql Ha 2008 08 29
Drupal Con My Sql Ha 2008 08 29
liufabin 66688
Application Partitioning Wp
Application Partitioning Wp
liufabin 66688
090507.New Replication Features(2)
090507.New Replication Features(2)
liufabin 66688
Mysql Replication
Mysql Replication
liufabin 66688
High Performance Mysql
High Performance Mysql
liufabin 66688
high performance mysql
high performance mysql
liufabin 66688
Lecture28
Lecture28
liufabin 66688
Refactoring And Unit Testing
Refactoring And Unit Testing
liufabin 66688
Refactoring Simple Example
Refactoring Simple Example
liufabin 66688
Más de liufabin 66688
(20)
人大2010新生住宿指南
人大2010新生住宿指南
中山大学2010新生住宿指南
中山大学2010新生住宿指南
武汉大学2010新生住宿指南
武汉大学2010新生住宿指南
天津大学2010新生住宿指南
天津大学2010新生住宿指南
清华2010新生住宿指南
清华2010新生住宿指南
南京大学2010新生住宿指南
南京大学2010新生住宿指南
复旦2010新生住宿指南
复旦2010新生住宿指南
北京师范大学2010新生住宿指南
北京师范大学2010新生住宿指南
北大2010新生住宿指南
北大2010新生住宿指南
Optimzing mysql
Optimzing mysql
Mysql Replication Excerpt 5.1 En
Mysql Replication Excerpt 5.1 En
Drupal Con My Sql Ha 2008 08 29
Drupal Con My Sql Ha 2008 08 29
Application Partitioning Wp
Application Partitioning Wp
090507.New Replication Features(2)
090507.New Replication Features(2)
Mysql Replication
Mysql Replication
High Performance Mysql
High Performance Mysql
high performance mysql
high performance mysql
Lecture28
Lecture28
Refactoring And Unit Testing
Refactoring And Unit Testing
Refactoring Simple Example
Refactoring Simple Example
Refactoring 重构
1.
重构 刘发宾 2009-10-12
2.
3.
设计是有限制的,未来不可预知 桥梁史上最有名的事故之一。 美国华盛顿州
Tacoma Narrows 桥倒塌,这次事故令桥梁的设计规范重新修改, 风力和共振分析成为桥梁设计必不可少的一部分, 重构可以带来简单的设计,同时不损失其灵活性,这也降低了设计过程的难度,减轻了设计的压力
4.
设计编码是人类的活动 软件开发首先是一场沟通博弈,重构就是在代码写好之后改进它的设计 有了设计,我可以思考的更快,但是其中充满了小漏洞
1300 年赵州桥与现代“豆腐渣工程”
5.
管理软件的复杂度 程序的规模 程序的复杂度
程序员的工作就是保持程序的复杂度与规模的关系尽量接近线性函数,而不是指数函数,最小的复杂度,不要让无谓的复杂度快速的增长 亚里斯多德的” 事物的本质性质和附属性质”,本质复杂性解决问题核心。致力于本质复杂性,去除附属复杂性。 1 噢卡姆剃刀原理:对一现象的好多种解释,最简单的往往是正确的,如无必要,务增复杂性。 2 迪米特法则 : 只跟最亲密的朋友讲话。任何对象不需要制定与之交互的那些对象的实现细节,减少复杂度 高内聚,松耦合
6.
需求多变杂 小的改动不容忽视,层出不尽 封装,隔离变化
7.
Double B
(bug bad smell) Refactoring 是一个 code review 和反馈的过程。在另一个时段重新审视自己或别人代码,可以更容易的发现问题和加深对代码的理解, Refactoring 是一个良好的软件开发习惯,问题越是发现在前端,软件修复以及维护成本会越低 ,问题越是发现在后端,成本越来越高
8.
9.
何谓重构
10.
11.
重构是一种方法论 牛顿万有引力定律无法解释水星运动的不规则形象,爱因斯坦构建的广义相对论理论即向下兼容了牛顿定律,又满足新的需求—自然的探索 数学系统的一直在重新构建,解决危机:有理数
,无理数,实数,虚数, 欧几里德几何,笛卡尔的解析几何,黎曼几何, 乔治康拓的集合轮 重构也是我们认识世界,改造世界的方法论 .
12.
13.
14.
15.
16.
17.
18.
重新组织你的方法
19.
Extract Method
20.
21.
Replace Temp with
Query
22.
Introduce Explaining Variable
23.
Split Temporary Variable
24.
Remove Assignments to
Parameters
25.
Replace Method with
Method Object
26.
Substitute Algorithm
27.
Remove Double Negative
28.
Reduce Scope of
Variable
29.
Replace Iteration with
Recursion
30.
Replace Assignment with
Initialization
31.
Replace Static Variable
with Parameter
32.
Reverse Conditional
33.
Split Loop
34.
在对象之间搬移特性
35.
Move method
36.
Move Field
37.
Extract Class
38.
Inline Class
39.
Hide Delegate
40.
Remove Middle Man
41.
Introduce Foreign Method
42.
重新组织数据
43.
Self Encapsulate Field
44.
Replace Data Value
with Object
45.
46.
简化条件表达式
47.
Decompose Conditional 分界表达式
48.
Consolidate Conditional Expression
合并
49.
Consolidate Duplicate Conditional
Fragments
50.
Replace Nested Conditional
with Guard Clauses
51.
Replace Conditional with
Polymorphism 多态
52.
Introduce Null Object
53.
Introduce Assertion
54.
55.
处理概括关系
56.
Pull Up Field
57.
Pull Up Method
58.
Pull Up Constructor
Body
59.
Push Down Method
60.
Push Down Field
61.
Extract Superclass
62.
Extract Interface
63.
Extract Subclass
64.
Collapse Hierarchy 折叠继承体系
65.
Form Template Method
66.
Replace Inheritance/ Delegation
with Delegation/Inheritance
67.
68.
69.
Descargar ahora