[mjt] 함수 네이밍과 단일 책임 원칙에 대해 알아보자
함수 네이밍과 단일 책임 원칙에 대해 알아보자
함수는 코드의 기본 구성 요소로, 어떤 동작을 수행하기 위한 코드 묶음이다. 이 글에서는 함수 이름 짓기와 작성 시 지켜야 할 기본 원칙을 알아보자
함수 네이밍: 명확 간결!
함수 이름은 무엇으로 할까?
- 함수가 수행하는 동작을 명확히 나타내야 한다.
- 간결하면서도 의미를 담아야 한다. 코드를 읽는 사람은 함수 이름만 보고 함수의 역할을 이해할 수 있어야 한다.
1-1) 동작을 나타내는 동사 접두어을 사용해보자.
함수 이름은 대개 동사로 시작하며, 아래와 같은 접두어를 사용할 수 있다.
-
get..
: 값을 반환 (getAge: 나이를 반환) -
calc..
: 계산 수행 (calcSum(): 함계를 계산) -
create..
: 무언가를 생성 (createForm(): 폼을 생성) -
check..
: 조건 확인 (checkPermission(): 권한 확인)
접두어를 적절히 활용하여 이름만으로 함수의 동작과 반환값을 유추할 수 있어 코드의 가독성이 크게 향상된다.
함수는 단일 책임을 가져야 한다.
“하나의 함수, 하나의 동작”
함수는 이름에 명시된 동작 하나만 수행해야한다. 여러 동작을 동시에 수행하지 않도록 주의하자!
-
getAge()
는 나이 반환만 해야 하며, 메시지 출력은 포함되지 않아야 한다. -
createForm()
은 폼 생성만 수행하며, 생성된 폼을 DOM에 추가하는 작업은 다른 함수에서 처리해야 한다.
함수 이름으로 주석의 역할을 대신하라
- 함수 이름이 명확하면 주석 없이도 코드를 이해할 수 있다.
- 함수를 짧게 작성하면 디버깅과 테스트가 쉬워진다.
매개변수와 외부 변수
- 함수는 매개변수와 지역 변수만 활용하여 동작해야 한다.
- 외부 변수에 의존하는 함수는 이해하기 어렵고, 재사용성이 떨어진다.
회고
- 함수 이름은 동사를 포함하여 명확히 동작을 나타내야 한다.
- 접두어(get, create, check, calc)를 사용하면 함수의 역할을 쉽게 알 수 있다.
- 단일 책임 원칙을 지켜, 함수는 하나의 동작만 수행해야 한다.
- 긴 함수는 분리하여 간결하고 읽기 쉬운 코드를 만들자.
- 매개변수와 지역 변수를 사용하고, 외부 변수 의존성을 줄이자.