Study/JavaScript(Clean code)

[JavaScript][clean-code] 매개변수의 순서가 경계이다.

갈푸라떼 2022. 5. 28. 03:05

* 매개변수의 순서가 경계다.

  • 매개변수의 순서만 잘지켜도 그것 자체가 경계이다.
  • 호출하는 함수의 네이밍과 인자의 순서의 연관성을 고려한다.
  • 다양한 관계들을 함수의 네이밍과 인자를 통해서 역할을 유추할 수 있다.
  • 함수를 만들때 함수의 네이밍과 인자를 고려해준다.
getRandomNumber(1, 50);
getDates('2021-10-01', '2021-10-31');
getShuffleArray(1, 5);

 

* 유지보수에 취약한 함수를 만들지 않기 위해서는

  • 매개변수를 2개가 넘지 않도록한다.
  • 그런데도 인자가 너무 많을거 같으면 arguments, rest parameter를 이용한다.
  • 혹은 매개변수를 객체에 담아서 넘긴다.
    • 객체이므로 순서가 상관없으므로 다양하게 인자를 다룰수 있다.
    • 아래의 예시 참조
function someFund({ someArg1, someArg2, someArg3, someArg4 }) { }
  • 이미 만들어진 함수가 있다면 랩핑하는 함수를 이용한다. (정 안되면)
    • 아래의 예시 참조
function getFunc(someArg1, someArg3) {
  someFunc(someArg1, undefined, someArg3)
}