반응형
리팩터링 패턴은 크게 4단계가 있다.
- 긴 함수를 조각내기
- 타입 코드를 처리하기
- 유사 코드를 통합하기
- 데이터를 보호하기
그 중 첫번째 패턴인 ‘긴 함수 조각내기’ 에 대해 알아보자.
코드를 조각내는 규칙들
규칙 1 ) 함수의 라인 수는 5 라인으로 제한한다.
함수의 라인 수를 5 라인으로 제한하면 해당 규칙을 지키기 위해 메서드 분리를 하게 되는데,
메서드 분리를 하면서 메서드가 하나의 책임만 가지도록 코드를 개선하는 효과가 있다.
특정 사례에 맞게 줄 수를 변경할 수 있지만, 실제 줄 수는 5줄 정도로 끝나는 경우가 많다.
이렇게 메서드를 분리하면 각 메서드의 이름으로 코드의 의도를 전달할 수 있고 훨씬 이해하기가 빠르고 쉽다.
또한 작은 메서드에 적절하게 이름을 붙이면 큰 함수 이름을 정하는 데도 도움이 된다.
메서드를 분리할 때는 동일한 작업을 하는 데 필요한 줄의 그룹을 먼저 식별하고, 메서드로 분리하자.
이를 메서드 추출이라고 한다.
메서드 추출은 IDE 의 힘을 빌리면 좀 더 쉽게 할 수 있다. (인텔리제이의 경우 : option + cmd + m)
메서드를 추출할 때 인자가 많아지는 경우가 생길 수 있는데, 이게 오히려 안전한 방법이라면 예쁜 코드로 만드는 것 보다 안전한 코드가 되는게 더 낫다.
규칙 2 ) 메서드의 추상화 수준을 동등하게 맞추자
저수준 : 직접 조작하는 경우
function run() { return 1 + 2; // 저수준 }
고수준 : 다른 함수에 인자로 전달하는 경우
function run() { return sum(1, 2); // 고수준 }
함수의 내용은 동일한 추상화 수준에 있어야 한다.
추상화 수준이 동등하면 코드를 읽는게 마치 소설책의 문단을 하나씩 읽는 것처럼 코드를 이해하기 쉬워지기 때문이다.
규칙 3 ) 메서드 이름을 잘 짓자
좋은 이름이 가져야 할 규칙
- 함수의 의도를 설명해야 한다.
- 함수가 하는 모든 것을 담아야 한다.
- 도메인에서 일하는 사람이 이해할 수 있어야 한다.
규칙 4 ) if 문을 함수의 시작에만 배치하자
무언가를 확인하는 것은 한 가지 일이다.
따라서 if 문은 메서드로 분리해야 한다.
반응형
'개발 도서' 카테고리의 다른 글
Five Lines of Code - 6장. 데이터 보호 (2) | 2023.10.14 |
---|---|
Five Lines of Code - 4장. 타입 코드 처리하기 (0) | 2023.09.22 |
Five Lines of Code - 2장. 리팩터링 깊게 들여다보기 (0) | 2023.08.19 |
Five Lines of Code - 1장. 리팩터링 리팩터링하기 (0) | 2023.08.19 |
[이펙티브 자바] 아이템 2 - 생성자에 매개변수가 많다면 빌더를 고려하라 (0) | 2023.03.14 |
댓글