brunch

IntelliJ 15 EAP Ultimate의 향상

Extract Method가 쉬워졌다 ^^

by 백명석

오늘 자잘한 코딩을 하던 중 아무 생각 없이 try-catch 문장을 extract method 했는데 IntelliJ가 완전히 일치하지는 않지만 구조적으로 일치하는 중복이 있다고 알려주며 자동으로 중복을 제거해 주었다.


이를 살펴보면 아래와 같다.


0. 중복이 존재하는 코드

fig-00.png

위 코드를 보면 33~38 라인과 44~48 라인에 중복이 존재한다. 하지만 빨간 줄을 그어 놓은 부분이 완전히 일치하지 않아서 기존에는 33~38 라인을 extract method 하면 44~48 라인이 함께 적용되지 않았다.

1. 이전 버전에서 해결 방법

그래서 다음과 같은 단계를 거쳤다.

1.1 완전히 동일하지 않은 부분에 extract varible을 수행

fig-00-1.png

1.2 extract method

fig-00-2.png

1.3 IntelliJ가 추천하는 다른 블록에도 extrac method 적용

fig-00-3.png

1.4 1.1에서 extract 한 변수를 Inline

fig-00-4.png

이런 번거로운 과정을 거쳤었다.


2. IntelliJ 15 EAP Ultimate 버전에서의 해결 방법

2.1 Extract Variable 없이 Extract Method 실행

fig-01.png

2.2 IntelliJ가 완전 동일하지 않지만 중복을 제거할 수 있는 코드 블록을 추천

fig-02.png

이때 "IllegalArgumentException should be thrown"을 message라고 변수로 추출해야 가능하고, 후에 tagAndCatcheException(s)가 아니라 tagAndCatcheException(s, "IllegalArgumentException should be thrown")으로 호출해야 한다고 보여준다.

2.3 최종 결과

fig-03.png

위 그림과 같이 extract variable, inline variable이 필요했던 부분이 자동으로 처리된 것을 알 수 있다.

참 대단한 JetBrains이다 ^^

작가의 이전글spring-boot integration test삽질