big refactoring #12

7
Refactoring #12 Big Refactoring

Upload: jay-kim

Post on 21-Jul-2015

94 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Big refactoring #12

Refactoring

#12 Big Refactoring

Page 2: Big refactoring #12

INDEX

개론

Tease Apart Inheritance

Convert Procedural Design to Objects

Separate Domain from Presentation

Extract Hierarchy

Page 3: Big refactoring #12

개론

대규모리팩토링, 접근방식을달리하자무조건한번에끝내야한다는생각은버리자

기능개선과같이병행하는것도좋은접근이다.

Step by Step

Your Changes of Today, Makes World Better!

절대로소홀히해서는안되는대규모프로젝트의리팩토링작은실수들이쌓이면결국손쓸수없는상황을직면할수도있다!

Page 4: Big refactoring #12

Tease Apart Inheritance

여러가지변화(기능)를혼란스러운방법으로결합한것같이엉켜있는상속구조를다루는방식.

하나의가지에서계속된상속을통해기능들을처리해나가는경우코드가독성이떨어져유지보수에어려움을겪을수있다.

상속을잘라떼어내고, 별도의가지를만들어원래가지에서위임(호출)을통해해결하는방법.

Page 5: Big refactoring #12

Convert Procedural Design to Objects

절차적인코드가많은프로젝트에서객체지향스타일로변경하는방법

절차적인코드단락에서데이터를분류

분류한데이터를각각의성격에맞는객체로승화

처리코드들을승화시킨객체에성격에맞게녹여넣기.

Page 6: Big refactoring #12

Separate Domain From Presentation

고전적인 2 Tier(UI & DB) 접근방식으로되어있는프로젝트에서비즈니스로직을분리해내는방식

만약도메인로직을포함하고있는 GUI 클래스를만났다면?

도메인로직을최대한분리하여도메인클래스를만들어 UI와분리시킨다.

도메인로직 – UI – DB 구조로변경됨 : 2 Tier MVC

Page 7: Big refactoring #12

Extract Hierarchy

지나치게복잡한클래스를서브클래스의그룹으로바꾸어단순화시키는방법

하나의클래스가너무많은작업을하는경우

부분적으로라도지나치게많은조건문등으로인해로직이긴클래스

로직을세부적으로분리하여각각의분류별로 Base 객체를만들고상속구조를만들어각각의서브클래스가특정작업을담당하도록클래스의상속구조를만드는방법.