일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코어자바스크립트
- 2588번
- MSA
- hoisting
- 도커
- 10926번
- 쿠버네티스
- v-on
- 백준
- 리스트복사
- 프리코스
- v-model
- 우테코
- 빅오표기법
- 젠킨스
- 배열파티션
- LeetCode
- Python
- JavaScript
- 이벤트캡쳐링
- vue
- 파이썬
- 이벤트버블링
- 객체지향의 사실과 오해
- 3003번
- v-if
- 10869번
- 실행 컨텍스트
- v-for
- DevOps
Archives
- Today
- Total
새오의 개발 기록
클린코드 자바스크립트: 경계 다루기 본문
min - max
min - max를 명시적으로 다루는 방법
- 최소값과 최대값을 다룬다
- 최소값과 최대값 포함 여부를 결정해야 한다. (이상-초과 / 이하-미만)
- 혹은 네이밍에 최소값과 최대값 포함 여부를 표현한다.
예제
function genRandomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// 상수
const MIN_NUMBER = 1
const MAX_NUMBER = 45;
genRandomNumber(MIN_NUMBER, MAX_NUMBER);
const MAX_AGE = 20
function isAdult(age) {
// 최소, 최대값 (포함되는지 vs 안되는지)
// 이상, 초과 vs 이하, 미만
if (age >= 20) {
}
}
- 명시적인 코드(상수) 사용으로 코드의 구현부를 보지 않아도 읽을 수 있으나 경계값이 포함되는지 모호함.
// limit이라는 네이밍에서 이 한계를 넘으면 안된다는 초과 또는 미만으로 생각하기 쉬움
const MIN_NUMBER_LIMIT = 1;
const MAX_NUMBER_LIMIT = 45;
// in이라는 네이밍에서 이상 또는 이하로 생각하기 쉬움
const MIN_IN_NUMBER = 1;
const MAX_IN_NUMBER = 45;
- 네이밍을 명확하게 해서 경계값 포함 여부 나타내는 방법도 있음
- 그러나 네이밍 자체로 해석하기는 모호한 부분이 있기 때문에 팀 내에서 컨벤션을 정의하고 사용하는 것이 좋음
begin - end
- 경계를 제외하는 경우
- ex) 시작은 동일한데 끝이 다른 경우
- ex) 에어비앤비에서 날짜를 선택할 때 체크인 날짜(시작) 체크아웃 날짜(끝)
function reservationDate(beginDate, endDate) {
// ...some code
}
reservationDate('YYYY-MM-DD', 'YYYY-MM-DD');
first - last
- min, max와 비슷하지만 다름
- 양 끝점이 존재하나 그 사이의 값들의 연속성을 보장할 수 없는 경우
- dom요소에도 first child, last child가 있는데 비슷한 예임
const students = ['포코', '존', '현석'];
function getStudents(fist, last) {
// ...some
}
getStudents('포코', '현석');
prefix - suffix
- prefix(접두사): 앞에 붙는
- ex) 시아버지, 시어머니
- suffix(접미사): 뒤에 붙는
- ex) 덮개, 지우개
예시
- setter사용할 때 앞에 set 붙여 쓰는 것
- react에서 use prefix 사용하면 기본 hook이라는 뜻임
- ex) useState, useEffect, useContext..
- 제이쿼리에서 $ prefix 사용하는 경우
- vue에서 컴포넌트 네이밍할 때
- ex) BaseButton.vue, BaseTable.vue, AppButton.vue, AppTable.vue
- 자바스크립트에서 private filed 사용할 때
코드의 일관성을 가질 수 있는 좋은 방법임
매개변수의 순서가 경계다
function someFunc(someArg, someArg) {
}
genRandomNumber(1, 50);
getDates('2021'-10-01', '2021-10-31');
getShuffleArray(1, 5);
- 대립된 관계, 평등하면서도 평행한 관계 등을 함수 네이밍과 인자들을 통해 유추 가능함
- 호출하는 함수의 네이밍과 인자의 순서의 연관성을 고려한 함수를 만드는 것이 좋음
- 그렇게 못 만들었다면 처음에 함수를 만들 때부터 유추 가능하도록 매개 변수의 개수를 2개가 넘지 않도록 하기
- 규칙적이지 않거나 2개 이상의 매개변수를 사용하게 되는 경우에는 객체로 받거나 rest 연산자 사용하거나 arguments 객체 사용하는 방법
참고: 유데미 클린코드 자바스크립트 강의
'클린코드' 카테고리의 다른 글
클린코드 자바스크립트: 타입 다루기 (0) | 2023.02.08 |
---|---|
클린코드 자바스크립트: 분기 처리하기 (0) | 2023.01.19 |