👀 반복문 (Loops)
- 프로그래밍 언어 초기부터 있었던 반복문은
처음에는 별다른 대안이 없어서 간과했지만
최근 자바와 같은 언어에서 함수형 프로그래밍을 지원하면서
반복문에 비해 더 나은 대안책이 생겼다.
- "반복문을 파이프라인으로 바꾸는 (Replace Loop with Pipeline)" 리팩토링을 적용하면
필터나 맵핑같은 파이프라인 기능을 사용해
보다 빠르게 어떤 작업을 하는지 파악할 수 있다.
🙌 반복문을 파이프라인으로 바꾸기 (Replace Loop with Pipeline)
- 고전적인 반복문을 파이프라인 오퍼레이션을 사용해 표현하면 코드를 더 명확하게 만들 수 있다.
(1) filter : 전달받은 조건의 true에 해당하는 데이터만 다음 오퍼레이션으로 전달
(2) map : 전달받은 함수를 사용해 입력값을 원하는 출력값으로 변환하여 다음 오퍼레이션으로 전달
[ Berfore ]
[ After ]
stream에 들어있는 요소들을 한번 순회하면서
각각의 요소들을 fiter하고 mapping 하고 다시 filter 한 다음에
최종적으로 collect로 하나의 컬렉션으로 묶는 방법이다.
👀 반복되는 switch문 (Repeated Swtiches)
- 예전에는 switch문이 한 번만 등장해도 다형성 적용을 권장했다.
- 최근에는 다형성이 꽤 널리 사용되고 있으며,
여러 프로그래밍 언어에서 보다 세련된 형태의 switch문을 지원하고 있다.
- "반복해서 등장하는 동일한 switch문"이 존재할 경우,
새로운 조건을 추가하거나 기존의 조건을 변경할 때
모든 switch문을 찾아서 코드를 고쳐야 한다.
🙌 개선된 swtich문
[ Berfore ]
[ After ]
출처 : 인프런 강의 (백기선 - 코딩으로 학습하는 리팩토링)
'Programming > 리팩토링' 카테고리의 다른 글
[리팩토링 기술-7] 기본형을 객체로 바꾸기 / 타입 코드를 서브클래스로 바꾸기 / 조건부 로직을 다형성으로 바꾸기 (0) | 2022.11.11 |
---|---|
[리팩토링 기술-6] 단계 쪼개기 / 클래스 추출하기 (0) | 2022.11.10 |
[리팩토링 기술-4] 가변데이터를 처리하는 리팩토링 (0) | 2022.11.08 |
[리팩토링 기술-3] 긴 매개변수를 처리하는 리팩토링 (0) | 2022.11.08 |
[리팩토링 기술-2] 긴 함수를 처리하는 리팩토링 (0) | 2022.11.07 |