티스토리 뷰
경계다루기
// a와 b에 들어가는 경우들과 함수 네이밍
const myFunction = (a, b) => {}
Max, Min
- 최소값과 최대값을 다룬다.
- 최소값과 최대값 포함 여부를 결정해야한다. (이상 vs 초과, 이하 vs 미만)
- 네이밍에 최소값 최대값 포함 여부를 포함한다.
Begin, End
숙소 예약을 하는 프로그램에서 예약 시작일, 예약 마지막일과 같은 경우이다.
함수명을 잘 지어서 인자의 순서 자체로 무엇인지 추론할 수 있도록 하면 좋다. 예 : reservationDate(begin, end)
First, Last
연속성이 보장되지 않는 경우에 사용한다. 연속적인 규칙은 없지만 항상 first와 last는 존재하기 때문이다.
연속되지 않는 숫자들이나 학생들 같은 경우도 연속성이 보장되지 않는다. 이런 경우가 first와 last이다. 예 : getStudents('mike', 'lynn')
Prefix, suffix (접두사, 접미사)
자바스크립트가 가진 set이나 get 예약어 그리고 그 외에도 접두사, 접미사는 다양하게 쓰이고 있다.
함수나 변수 앞에 get이라는 접미사를 사용해 이름을 지으면 이것은 특정한 약속이라고 암시할 수 있다. 예시로는 리액트 훅(use~), 제이쿼리 $, 클래스 프라이빗 필드 #를 들 수 있고, vue 스타일 가이드를 찾아보면 컴포넌트에서도 프리픽스를 사용하도록 추천하고 있다. (AppButton.vue / AppTable.vue / AppItem.vue)
접미사는 컴포넌트 폴더들을 관리할 때 볼 수 있는데 복수 단위로 관리되는 폴더는 s를 붙이고 단일로 규칙성없이 관리되는 경우는 단수로 사용하는 것을 볼 수 있다.
매개변수의 순서
매개변수의 순서가 경계가 된다. 호출하는 함수의 네이밍과 인자 순서의 연관성을 고려한다. 보통 함수를 선언하고 인자를 2개 넘길 때는 시작과 끝이 보인다. 함수 네이밍과 인자를 보며 유추할 수 있는 것이다. 그래서 함수의 매개변수를 2개보다 많이 넘겨 주는 것은 좋지 않다.
하지만 어쩔 수 없이 매개변수가 너무 많을 때는?
- Arguments나 rest parameter 사용을 고려해본다.
- 매개변수를 객체에 담아서 넘긴다.
- 랩핑 함수를 사용한다.
// 랩핑 함수
function myFunction(a, b, c, d) {
// do something
}
function wrappingFunction(a, c) {
myFunction(a, undefined, c)
}
경계다루기 챕터동안 정확히 경계가 뭘 말하는 건지 이해하지 못했지만 클린코드 작성을 위한 함수명과 파라미터에 대한 고민이라고 생각하기로 했다. 리액트에서 왜 다들 handle~로 시작하게 함수명을 지었는지 알겠다. 앞으로는 나도 함수명을 멋대로 짓지말고 프리픽스를 사용해서 지어야겠다. 랩핑함수는 지금은 이해가 안돼서 후일을 기약하기로 했다.
클린코드 강의 챕터마다 찔리는 점이 많다. 선생님이 '이런 적 있으시죠?' 하면 항상 내 이야기다.. 지난 챕터에서 let을 지양하라고 했는데 오늘도 let을 썼다.... 하지만 let말고 방법을 모르겠는걸요 선생님.... 아무래도 실력이 늘었다고 생각될 때마다 강의를 반복해서 들어서 뇌에 새겨야될 것 같다..
'TIL' 카테고리의 다른 글
TIL 220901 화면구현 하면서 배운 이것저것 (0) | 2022.09.02 |
---|---|
TIL 220828 react-router-dom hook - useLocation(), useParams(), useHistory() (0) | 2022.08.28 |
TIL 220823 클린코드 + React에서 map에 key가 필요한 이유 (0) | 2022.08.23 |
TIL 220817 React 이것저것 + Git squash merge (0) | 2022.08.18 |
TIL 220814 React 이것저것 (feat. 노마드코더 리액트 기초 강의) (0) | 2022.08.15 |
- Total
- Today
- Yesterday
- 김버그
- 구름에듀
- 저스트코드
- vscode
- js
- 깃
- 자바스크립트
- CSS
- 스파르타코딩클럽
- 코딩앙마
- git
- TS
- 회고
- Python
- 제로초
- 드림코딩
- Typescript
- React
- javascript
- vue
- scss
- html
- map
- 코드잇
- 비주얼스튜디오코드
- 리액트
- Til
- 파이썬
- 타입스크립트
- 제이쿼리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |