Function Naming Pattern (A/HC/LC Pattern)
A/HC/LC Pattern
A/HC/LC Pattern이란 아래와 같은 패턴으로 함수 이름을 명명하는 방법론이다.
prefix는 optional임에 유의할 것.
1
| prefix? + action (A) + high context (HC) + low context (LW)
|
예제:
Name |
Prefix |
Action (A) |
High context (HC) |
Low context (LC) |
getUser |
|
get |
User |
|
getUserMessages |
|
get |
User |
Messages |
handleClickOutside |
|
handle |
Click |
Outside |
shouldDisplayMessage |
should |
Display |
Message |
|
즉, 함수가 하는 일 (동사) + Context (목적어) 로 구성하는 것인데, 더 명확한 표현을 위해 Context를 High context와 Low context로 나눌 수 있다.
Frequent patterns
자주 사용되는 단어들
Action
get
1
2
3
| function getFruitCount() {
return this.fruits.length
}
|
set
1
2
3
4
5
6
7
8
| let fruits = 0
function setFruits(nextFruits) {
fruits = nextFruits
}
setFruits(5)
console.log(fruits) // 5
|
reset
1
2
3
4
5
6
7
8
9
10
11
| const initialFruits = 5
let fruits = initialFruits
setFruits(10)
console.log(fruits) // 10
function resetFruits() {
fruits = initialFruits
}
resetFruits()
console.log(fruits) // 5
|
fetch
1
2
3
| function fetchPosts(postCount) {
return fetch('https://api.dev/posts', {...})
}
|
remove
1
2
3
4
5
6
| function removeFilter(filterName, filters) {
return filters.filter((name) => name !== filterName)
}
const selectedFilters = ['price', 'availability', 'size']
removeFilter('price', selectedFilters)
|
delete
1
2
3
| function deletePost(id) {
return database.find({ id }).delete()
}
|
compose
1
2
3
| function composePageUrl(pageName, pageId) {
return (pageName.toLowerCase() + '-' + pageId)
}
|
handle
1
2
3
4
5
| function handleLinkClick() {
console.log('Clicked a link!')
}
link.addEventListener('click', handleLinkClick)
|
Context
Prefixes
is
- 해당 context의 특성을 기술한다 (대게 boolean 리턴)
has
- 해당 context의 value나 state를 가지는지를 기술한다 (대게 boolean 리턴)
should
- 해당 context가 특정 상태가 되어야 하는지 기술 (대게 boolean 리턴)