* 복잡한 인자 관리하기
- 인자의 갯수별로 함수의 사용도가 달라지기보단 인자의 갯수에 따른 맥락을 유추할 수 있는 방식이 더 중요하다.
- 무조건 인자가 많은게 나쁜건 아니다.
- 맥락과 흐름을 파악할 수 있는 인자가 더 중요하다.
* 맥락과 흐름을 파악할 수 있는 인자 예시코드
function toggleDisplay(isToggle) {
// ...some code
}
// 인자의 네이밍을 보고 bool형식의 인자가 들어갈 것이 유추된다.
function sum(sum1, sum2) {
// ...some code
}
sum(1, 2);
// 값이 2개 이므로 2개의 값을 더하는구나를 유추 할 수 있다.
function getRandomNumber(min, max) {
// ...some code
}
* 인자가 3개 이상이 나쁜것은 아니다.
function timer(start, stop, end) {
// ...some code
}
- 유연하게 표현이 가능하다.
- 어느정도 맥락이 일치한다.
function genSquare(top, right, bottom, left) {
// ..some code
}
- 어느정도 유추가 가능하다.
* 전혀 맥락이 유추 불가능한 복잡한 인자
function createCar(name, brand, color, type) {
return {
name,
brand,
color,
type,
};
}
- 이제는 복잡한 인자는 객체 구조 분해 할당을 통해서 함수의 인자로 사용이 가능하다.
* 인자가 넘어오지 않았을때 error처리
function createCar({ name, brand, color, type }) {
if (!name) {
throw new Error('name is a required');
}
if (!brand) {
throw new Error('brand is a required');
}
}
- 함수를 더 안전하게 관리할 수 있다.
- 명시적으로 error을 보여줄 수 있다.
- error관리를 통해서 실수를 방지 할 수 있다.
'Study > JavaScript(Clean code)' 카테고리의 다른 글
[JavaScript][clean-code] Rest Parameters (0) | 2022.06.13 |
---|---|
[JavaScript][clean-code] default Value / default parameter (0) | 2022.06.12 |
[JavaScript][clean-code] argument & parameter (0) | 2022.06.11 |
[JavaScript][clean-code] 함수, 메서드, 생성자 (0) | 2022.06.09 |
[JavaScript][clean-code] 직접 접근 지양하기 (0) | 2022.06.09 |