티스토리 뷰

TIL

TIL 220824 클린코드 - 경계다루기

2021bong 2022. 8. 25. 16:51

경계다루기

// a와 b에 들어가는 경우들과 함수 네이밍
const myFunction = (a, b) => {}

 

 

Max, Min

  1. 최소값과 최대값을 다룬다.
  2. 최소값과 최대값 포함 여부를 결정해야한다. (이상 vs 초과, 이하 vs 미만)
  3. 네이밍에 최소값 최대값 포함 여부를 포함한다.

 

 

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개보다 많이 넘겨 주는 것은 좋지 않다.

 

하지만 어쩔 수 없이 매개변수가 너무 많을 때는?

  1. Arguments나 rest parameter 사용을 고려해본다.
  2. 매개변수를 객체에 담아서 넘긴다.
  3. 랩핑 함수를 사용한다.
// 랩핑 함수
function myFunction(a, b, c, d) {
  // do something
}

function wrappingFunction(a, c) {
  myFunction(a, undefined, c)
}

경계다루기 챕터동안 정확히 경계가 뭘 말하는 건지 이해하지 못했지만 클린코드 작성을 위한 함수명과 파라미터에 대한 고민이라고 생각하기로 했다. 리액트에서 왜 다들 handle~로 시작하게 함수명을 지었는지 알겠다. 앞으로는 나도 함수명을 멋대로 짓지말고 프리픽스를 사용해서 지어야겠다. 랩핑함수는 지금은 이해가 안돼서 후일을 기약하기로 했다.

클린코드 강의 챕터마다 찔리는 점이 많다. 선생님이 '이런 적 있으시죠?' 하면 항상 내 이야기다.. 지난 챕터에서 let을 지양하라고 했는데 오늘도 let을 썼다.... 하지만 let말고 방법을 모르겠는걸요 선생님.... 아무래도 실력이 늘었다고 생각될 때마다 강의를 반복해서 들어서 뇌에 새겨야될 것 같다..

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함