ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이상적인 함수는?
    JavaScript 2022. 5. 13. 22:13

    이상적인 함수는 한 가지 일만 해야 하며 가급적 작게 만들어야 한다.

     

    매개변수는 코드를 이해하는 데 방해되는 요소이므로 이상적인 매개변수의 개수는 0개이며 적을수록 좋다.

    매개변수의 개수가 많다는 것은 함수가 여러 가지 일을 한다는 증거이므로 바람직하지 않다.

     

    따라서 매개변수는 최대 3개 이상을 넘지 않는 것을 권장한다. 만약 그 이상의 매개변수가 필요하다면 하나의 매개변수를 선언하고 객체를 인수로 전달하는 것이 유리하다.

     

    객체를 인수로 사용하는 경우 프로퍼티 키만 정확히 지정하면 매개변수의 순서를 신경 쓰지 않아도 된다.

    또한 명시적으로 인수의 의미를 설명하는 프로퍼티 키를 사용하게 되므로 코드의 가독성도 좋아지고 실수도 줄어드는 효과가 있다.

     

    하지만 주의할 것은 함수 외부에서 함수 내부로 전달한 객체를 함수 내부에서 변경하면 함수 외부의 객체가 변경되는 부수 효과가 발생한다.

    매개변수로 받은 객체는 참조에 의한 전달이기 때문에 참조 값이 묶여있기 때문이다.

     

    해결방법은?

    매개변수로 받을 객체를 불변 객체로 만들어 사용하는 것, 객체의 복사본을 새롭게 생성하는 비용은 들지만 객체를 마치 원시 값처럼 변경 불가능한 값으로 동작하게 만드는 것이다. 이를 통해 객체의 상태 변경을 원천봉쇄하고 객체 상태 변경이 필요한 경우에는 방어적 복사를 통해 원본 객체를 완전히 복제, 즉 깊은 복사를 통해 새로운 객체를 생성하고 재할당을 통해 교체한다. 이를 통해 외부 상태가 변경되는 부수 효과를 없앨 수 있다.

    'JavaScript' 카테고리의 다른 글

    Arrow Function 을 다시 알기  (0) 2023.11.26
    전역 변수의 사용을 억제하는 방법  (0) 2022.05.15
    require가 뭐야?  (0) 2022.04.04
    Clean Coding  (0) 2021.07.08
    [JS] Script의 위치  (0) 2019.11.24

    댓글

Designed by Tistory.