• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

함수 추출에 대한 고민

22.07.16 18:07 작성 조회수 154

1

안녕하세요 선생님 질문이 있습니다.

재사용성이 낮은 함수도 함수화를 시킬 수 있다면 함수로 묶고,
합성을 해서 사용하는 게 더 나은 판단인가요
개발을 하다 보면 어느 정도 수준까지 계층을 만들어야 할지 고민이 됩니다.

예를 들어 두 개의 배열 인자를 받고 새로운 배열로 평가 후 값을 누적한다는 함수가 있다고 할 때,
const compare = (a, b, f) =>
_.go(_.range(a.length === b.length ? a.length : 0), _.map(f(a, b)), _.reduce(_.add));

-> 사용예: compare([1, 2, 3], [4, 5, 6], (a, b) => i => a[i] + b[i]); // 출력값: 21

재사용할 가능성이 낮다고 판단이 되는 함수에도 특정 부분을 함수로 추출하여 작업하는 방식으로 진행한다면
const accrue = (a, b, f) => _.pipe(_.map(f(a, b)), _.reduce(_.add));
const compare = (a, b, f) => _.go(_.range(a.length === b.length ? a.length : 0), accrue(a, b, f));

-> 사용예: let acc = accrue([1, 2, 3], [4, 5, 6], (a, b) => i => a[i] + b[i]); acc([0,1,2]); // 출력값: 21

(위의 함수는 충분히 재사용성이 높습니다 그냥 임시로 예를 들었습니다 ^^)

계속해서 함수로 추출하고 추출해서 작업하는 것이 장기적으로 봤을 때 좋은 결과를 가져갈까요?
물론 어느 정도 재사용이 가능한 부분은 함수로 추출하는 것이 맞는다고 판단이 되지만,
충분히 익명 함수를 사용하여 작업을 해도 되는 상황을
모든 경우를 함수로 추출하는 것이 과연 올바를까 고민이 되어 질문드립니다.

답변 1

답변을 작성해보세요.

1

익명 함수 자체가 해당하는 일을 잘 표현한다면 익명 함수를 사용하고,

자주 사용될거 같으면서 실수를 할 가능성이 있는 경우라면 재사용하도록 하시면 어떨까요?