냄새 13. 반복문 Loops

  • 프로그래밍 언어 초기부터 있었던 반복문은 처음엔 별다른 대안이 없어서 간과했 지만 최근 Java와 같은 언어에서 함수형 프로그래밍을 지원하면서 반복문에 비해 더 나은 대안책이 생겼다.
  • "반복문을 파이프라인으로 바꾸는 (Replace Loop with Pipeline)" 리팩토링을 적용하면 필터나 맵핑과 같은 파이프라인 기능을 사용해 보다 빠르게 어떤 작업을 하는지 파악할 수 있다.

보통 for나 while로 순차적으로 인덱스를 쓰거나 변수로 할당해서, 그 변수가 어떻게 처리되는지 블록을 만들고 로직을 작성한다. 그러한 반복문을 파이프라인으로 작성하면 보다 읽기 쉽다.

리팩토링 33. 반복문을 파이프라인으로 바꾸기 Replace Loop with Pipeline

  • 콜렉션 파이프라인 (자바의 Stream, C#의 LINQ - Language Integrated Query)
  • 고전적인 반복문을 파이프라인 오퍼레이션을 사용해 표현하면 코드를 더 명확하게 만들 수 있다.
    • 필터 (filter): 전달받은 조건의 true에 해당하는 데이터만 다음 오퍼레이션으로 전달.
    • 맵 (map): 전달받은 함수를 사용해 입력값을 원하는 출력값으로 변환하여 다음 으퍼레이션으로 전달.
  • https://martinfowler.com/articles/refactoring-pipelines.html