big refactoring #12
TRANSCRIPT
Refactoring
#12 Big Refactoring
INDEX
개론
Tease Apart Inheritance
Convert Procedural Design to Objects
Separate Domain from Presentation
Extract Hierarchy
개론
대규모리팩토링, 접근방식을달리하자무조건한번에끝내야한다는생각은버리자
기능개선과같이병행하는것도좋은접근이다.
Step by Step
Your Changes of Today, Makes World Better!
절대로소홀히해서는안되는대규모프로젝트의리팩토링작은실수들이쌓이면결국손쓸수없는상황을직면할수도있다!
Tease Apart Inheritance
여러가지변화(기능)를혼란스러운방법으로결합한것같이엉켜있는상속구조를다루는방식.
하나의가지에서계속된상속을통해기능들을처리해나가는경우코드가독성이떨어져유지보수에어려움을겪을수있다.
상속을잘라떼어내고, 별도의가지를만들어원래가지에서위임(호출)을통해해결하는방법.
Convert Procedural Design to Objects
절차적인코드가많은프로젝트에서객체지향스타일로변경하는방법
절차적인코드단락에서데이터를분류
분류한데이터를각각의성격에맞는객체로승화
처리코드들을승화시킨객체에성격에맞게녹여넣기.
Separate Domain From Presentation
고전적인 2 Tier(UI & DB) 접근방식으로되어있는프로젝트에서비즈니스로직을분리해내는방식
만약도메인로직을포함하고있는 GUI 클래스를만났다면?
도메인로직을최대한분리하여도메인클래스를만들어 UI와분리시킨다.
도메인로직 – UI – DB 구조로변경됨 : 2 Tier MVC
Extract Hierarchy
지나치게복잡한클래스를서브클래스의그룹으로바꾸어단순화시키는방법
하나의클래스가너무많은작업을하는경우
부분적으로라도지나치게많은조건문등으로인해로직이긴클래스
로직을세부적으로분리하여각각의분류별로 Base 객체를만들고상속구조를만들어각각의서브클래스가특정작업을담당하도록클래스의상속구조를만드는방법.