IT모아

리팩토링 - 메소드 정리 본문

My-Book(History)

리팩토링 - 메소드 정리

아롱사태남 2017.01.11 00:09
메소드 정리


- 쪼갠 메소드중 제 역할을 못할 경우 메소드 내용을 호출하는 메소드에 직접 넣는 기법을 사용하라.


- 임시변수를 메소드 호출로 전환 기법을 사용할때 어려운 상황에 처하면 임시변수를 분리 시켜라



메소드 추출


- 어떤 코드를 그룹으로 묶어도 되겠다고 판단될땐 그 코드를 빼내어 목적을 잘 나타내는 직관적 이름의 메소드로 만들자.


- 메소드 추출로 코드의 명료성이 향상 되기만 한다면 메소드명이 추출한 코드보다 길어도 메소드 추출을 실시해야 한다.


- 지역 변수가 읽기 용으로만 사용된다면 그냥 매개변수로 전달하라.



메소드 내용 직접 삽입


- 메소드 기능이 너무 단순해서 메소드 명만 봐도 뻔할땐 그 메소드의 기능을 호출하는 메소드에 넣어버리고 그 메소드는 삭제하라


- 주의할점은 메소드가 재정의 되어있지 않아야 한다는 것이다.



임시변수를 메소드 호출로 전환


- 임시변수를 final로 선언하여 그 임시변수들이 값을 한번만 대입을 받는지 시험해보라 (그럼 임시변수를 메소드화 하기 쉬어진다)



직관적 임시변수 사용


- 사용하는 수식이 너무 복잡해서 이해하기 힘들때는 임시변수를 사용하러 처리하기 쉽게 쪼개라


ex)


if( (platform.toUpperCase().indexOf("mac") > -1) && (browser.touerCase().indexOf('IE') > -1)


를 final boolean isMacOs = 조건문에 들어갈 수식어


- 임시변수를 사용하고 싶을때 마다 더 좋은 방법이 없는지 늘 생각해보라


- 방법을 생각해봐도 지역변수 때문에 메소드 추출이 어렵다면 그냥 직관적 임시변수를 사용하라.


- 알고리즘에 수 많은 지역변수가 사용될 땐 대체로 메소드 추출이 수비지 않을때 사용된다.



임시변수 분리


- 루프변수나 값 누적용 임시변수가 아닌 임시변수에 값이 여러번 대입될 땐 다른 임시 변수를 사용하라.


0 Comments
댓글쓰기 폼