Soumettre la recherche
Mettre en ligne
Refactoring
•
Télécharger en tant que PPT, PDF
•
1 j'aime
•
1,076 vues
liufabin 66688
Suivre
Technologie
Business
Signaler
Partager
Signaler
Partager
1 sur 69
Télécharger maintenant
Recommandé
Refactoring 重构
Refactoring 重构
liufabin 66688
软件工程 第十一章
软件工程 第十一章
浒 刘
大公司的Java面试题集
大公司的Java面试题集
yiditushe
Java 6中的线程优化真的有效么?
Java 6中的线程优化真的有效么?
wensheng wei
测试用例浅析 V1.1
测试用例浅析 V1.1
shijian_dev
Java面试知识
Java面试知识
yiditushe
Essential oracle security internal for dba
Essential oracle security internal for dba
maclean liu
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Ady Liu
Recommandé
Refactoring 重构
Refactoring 重构
liufabin 66688
软件工程 第十一章
软件工程 第十一章
浒 刘
大公司的Java面试题集
大公司的Java面试题集
yiditushe
Java 6中的线程优化真的有效么?
Java 6中的线程优化真的有效么?
wensheng wei
测试用例浅析 V1.1
测试用例浅析 V1.1
shijian_dev
Java面试知识
Java面试知识
yiditushe
Essential oracle security internal for dba
Essential oracle security internal for dba
maclean liu
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Ady Liu
Sql语句的优化
Sql语句的优化
abszhanghe
Beanstalk protocol
Beanstalk protocol
qianshi
深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)
wang hongjiang
Java面试32题
Java面试32题
yiditushe
jasmine入门指南
jasmine入门指南
Zhicheng Wang
J2ee面试知识
J2ee面试知识
yiditushe
Struts Mitac(1)
Struts Mitac(1)
wangjiaz
Java多线程编程详解
Java多线程编程详解
yiditushe
Asml esitys geniem
Asml esitys geniem
Tuomas Kumpula
中山大学2010新生住宿指南
中山大学2010新生住宿指南
liufabin 66688
Mysql Replication Excerpt 5.1 En
Mysql Replication Excerpt 5.1 En
liufabin 66688
北大2010新生住宿指南
北大2010新生住宿指南
liufabin 66688
Refactoring Simple Example
Refactoring Simple Example
liufabin 66688
Drupal Con My Sql Ha 2008 08 29
Drupal Con My Sql Ha 2008 08 29
liufabin 66688
北京师范大学2010新生住宿指南
北京师范大学2010新生住宿指南
liufabin 66688
Refactoring And Unit Testing
Refactoring And Unit Testing
liufabin 66688
Lecture28
Lecture28
liufabin 66688
SCJP ch09
SCJP ch09
r82093403
Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
Frank‘s Learning Summary - Agile testing
Frank‘s Learning Summary - Agile testing
Frank Lee
重構—改善既有程式的設計(chapter 12,13)
重構—改善既有程式的設計(chapter 12,13)
Chris Huang
软件重构
软件重构
longhao
Contenu connexe
Tendances
Sql语句的优化
Sql语句的优化
abszhanghe
Beanstalk protocol
Beanstalk protocol
qianshi
深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)
wang hongjiang
Java面试32题
Java面试32题
yiditushe
jasmine入门指南
jasmine入门指南
Zhicheng Wang
J2ee面试知识
J2ee面试知识
yiditushe
Struts Mitac(1)
Struts Mitac(1)
wangjiaz
Java多线程编程详解
Java多线程编程详解
yiditushe
Tendances
(8)
Sql语句的优化
Sql语句的优化
Beanstalk protocol
Beanstalk protocol
深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)
Java面试32题
Java面试32题
jasmine入门指南
jasmine入门指南
J2ee面试知识
J2ee面试知识
Struts Mitac(1)
Struts Mitac(1)
Java多线程编程详解
Java多线程编程详解
En vedette
Asml esitys geniem
Asml esitys geniem
Tuomas Kumpula
中山大学2010新生住宿指南
中山大学2010新生住宿指南
liufabin 66688
Mysql Replication Excerpt 5.1 En
Mysql Replication Excerpt 5.1 En
liufabin 66688
北大2010新生住宿指南
北大2010新生住宿指南
liufabin 66688
Refactoring Simple Example
Refactoring Simple Example
liufabin 66688
Drupal Con My Sql Ha 2008 08 29
Drupal Con My Sql Ha 2008 08 29
liufabin 66688
北京师范大学2010新生住宿指南
北京师范大学2010新生住宿指南
liufabin 66688
Refactoring And Unit Testing
Refactoring And Unit Testing
liufabin 66688
Lecture28
Lecture28
liufabin 66688
En vedette
(9)
Asml esitys geniem
Asml esitys geniem
中山大学2010新生住宿指南
中山大学2010新生住宿指南
Mysql Replication Excerpt 5.1 En
Mysql Replication Excerpt 5.1 En
北大2010新生住宿指南
北大2010新生住宿指南
Refactoring Simple Example
Refactoring Simple Example
Drupal Con My Sql Ha 2008 08 29
Drupal Con My Sql Ha 2008 08 29
北京师范大学2010新生住宿指南
北京师范大学2010新生住宿指南
Refactoring And Unit Testing
Refactoring And Unit Testing
Lecture28
Lecture28
Similaire à Refactoring
SCJP ch09
SCJP ch09
r82093403
Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
Frank‘s Learning Summary - Agile testing
Frank‘s Learning Summary - Agile testing
Frank Lee
重構—改善既有程式的設計(chapter 12,13)
重構—改善既有程式的設計(chapter 12,13)
Chris Huang
软件重构
软件重构
longhao
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
Ho Kim
前端测试
前端测试
frontwindysky
前端测试
前端测试
Zheng Biao
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
zhen chen
软件设计原则、模式与应用
软件设计原则、模式与应用
yiditushe
快速了解PostgreSQL
快速了解PostgreSQL
正中 周
常用JAVA代码质量静态检查工具
常用JAVA代码质量静态检查工具
dearhwj
Xpp
Xpp
drewz lin
IDDD Ch.09 Module
IDDD Ch.09 Module
Eason Kuo
Refactoring with Patterns in PHP
Refactoring with Patterns in PHP
Jace Ju
5, initialization & cleanup
5, initialization & cleanup
ted-xu
软件工程
软件工程
bill0077
網站設計100步
網站設計100步
evercislide
ES5 introduction
ES5 introduction
otakustay
Code guidelines
Code guidelines
Jeffray Huang
Similaire à Refactoring
(20)
SCJP ch09
SCJP ch09
Ecma script edition5-小试
Ecma script edition5-小试
Frank‘s Learning Summary - Agile testing
Frank‘s Learning Summary - Agile testing
重構—改善既有程式的設計(chapter 12,13)
重構—改善既有程式的設計(chapter 12,13)
软件重构
软件重构
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
前端测试
前端测试
前端测试
前端测试
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
软件设计原则、模式与应用
软件设计原则、模式与应用
快速了解PostgreSQL
快速了解PostgreSQL
常用JAVA代码质量静态检查工具
常用JAVA代码质量静态检查工具
Xpp
Xpp
IDDD Ch.09 Module
IDDD Ch.09 Module
Refactoring with Patterns in PHP
Refactoring with Patterns in PHP
5, initialization & cleanup
5, initialization & cleanup
软件工程
软件工程
網站設計100步
網站設計100步
ES5 introduction
ES5 introduction
Code guidelines
Code guidelines
Plus 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
Optimzing mysql
Optimzing mysql
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
Refactoring Example
Refactoring Example
liufabin 66688
Plus de liufabin 66688
(13)
人大2010新生住宿指南
人大2010新生住宿指南
武汉大学2010新生住宿指南
武汉大学2010新生住宿指南
天津大学2010新生住宿指南
天津大学2010新生住宿指南
清华2010新生住宿指南
清华2010新生住宿指南
南京大学2010新生住宿指南
南京大学2010新生住宿指南
复旦2010新生住宿指南
复旦2010新生住宿指南
Optimzing mysql
Optimzing mysql
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
Refactoring Example
Refactoring Example
Refactoring
1.
重构 刘发宾 2009-10-12
2.
3.
设计是有限制的,未来不可预知 桥梁史上最有名的事故之一。 美国华盛顿州
Tacoma Narrows 桥倒塌,这次事故令桥梁的设计规范重新修改, 风力和共振分析成为桥梁设计必不可少的一部分, 重构可以带来简单的设计,同时不损失其灵活性,这也降低了设计过程的难度,减轻了设计的压力
4.
设计是人类的活动 软件开发首先是一场沟通博弈,重构就是在代码写好之后改进它的设计 有了设计,我可以思考的更快,但是其中充满了小漏洞
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.
Télécharger maintenant