Skip to content

Commit

Permalink
Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
genie-youn committed Dec 3, 2018
1 parent 6e34556 commit 2becb0d
Showing 1 changed file with 60 additions and 1 deletion.
61 changes: 60 additions & 1 deletion Refactoring/Refactoring.md
Original file line number Diff line number Diff line change
Expand Up @@ -287,5 +287,64 @@

잘못될 수 있는 경계조건을 생각한 뒤, 그 상황의 테스트에 집중해라

뭔가 에러가 있으리라 예상될 때, 그 예외가 정말로 발생하는지 꼭 확인해라.
뭔가 에러가 있으리라 예상될 때, 그 예외가 정말로 발생하는지 꼭 확인해라.



## 5. 리팩토링 기법 카탈로그에 대해



## 6. 메서드 정리



리팩토링의 주된 작업은 코드를 포장하는 메서드를 적절히 정리하는 것이다. 거의 모든 문제점은 장황한 메서드로 인해 생긴다. 장황한 메서드에는 많은 정보가 들어 있는데, 마구 얽힌 복잡한 로직에 이 정보들이 묻혀버린다. 핵심적인 리팩토링 기법은 코드 뭉치를 별도의 메소드로 빼내는 메서드 추출이다. 그와 반대로 메서드 내용 직접 삽입은 개별 메서드로 빼내고 보니 그렇게 만들어진 일부 메서드가 제 역할을 못하거나 그 메서드들을 쪼갠 방식을 바꿔야 할 때는 메소드 내용 직접 삽입 기법을 적용해야 한다.



### 6.1 메서드 추출 Extract Method



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



```java
void printOwing(double amount) {
printBanner();

System.out.println("name:" + _name);
System.out.println("amount:" + amount);
}
```



```java
void printOwing(double amount) {
printBanner();
printDetails(amount);
}

void printDetails(double amount) {
System.out.println("name:" + _name);
System.out.println("amount:" + amount);
}
```



#### 동기

메서드가 너무 길거나 코드에 주석을 달아야만 의도를 이해할 수 있을 때

간결한 메서드가 좋은 이유는 세가지.

1. 다른 메서드에서 쉽게 사용할 수 있다.
2. 상위 계층에 메서드에서 주석 같은 더 많은 정보를 읽어들일 수 있다.
3. 재정의하기에 훨씬 수월하다.

메서드 내용이 간결한 것도 중요하지만, 효과를 보려면 메서드 이름도 잘 지어야 한다.

0 comments on commit 2becb0d

Please sign in to comment.