2022.2.20 (SUN)
등등...
나는...🤔 생각하고 변수 이름을 짓나...?
의미있는 변수명 짓기. 지나치게 강조해도 부족한 부분이다.
게다가 어렵기까지 하다.
오죽하면 자식 이름보다 짓기 어려운 변수명 이름짓기 라고 하지 않는가.
이전 부분과 마찬가지로, 이번 챕터도 나를 반성하게 되는 계기가 되었다.
개인적으로 좀 기억해두고 싶은 예시 코드들을 몇 개 적어본다.
1. parameter naming도 의미있게 작성하자.
const copyArray = (array1,array2) => {
for(let i=0;i<array1.length;i++){
array2[i] = array1[i];
}
...
}
함수 이름만 보면, 어떤 일을 하는 함수인지는 파악할 수 있다.
하지만, array1과 array2라는 인자들이 어떤 역할을 하는지는 내용을 끝까지 보아야 알 수 있다.
array1과 array2를 각각 source와 destination으로 바꾼다면, 함수가 어떤 동작으로 이루어지는지 쉽게 파악할 수 있을 것이다.
2.변수명을 지을 때, 필요한 단어(내용)인지 계속 고민하자 + 개인적인 생각
책에서도 소개한 예시이다.
- getActiveAccount()
- getActiveAccounts()
- getActiveAccountInfo()
함수 이름에서도 알 수 있듯, 현재 활동 중인 계정 정보를 얻어오는 함수이다.
getActiveAccount() vs getActiveAccountInfo()
getActiveAccount는 getActiveAccountInfo와 구분이 되지 않는다.
따라서, getActiveAccount를 사용.
getActiveAccount() vs getActiveAccounts()
이 부분은 어떤 기능을 구현해야하는지에 따라 다를 것 같다.
만약, 하나의 계정만을 가져와야하는 기능이 필요하다면, getActiveAccount / getActiveAccounts의 이름에 따라 기능 구분이 될 것 같다. (개인적으로는 getActiveAccount가 사용되는 문맥을 더 잘 나타내주면 좋을 것 같다.)
그렇지 않은 경우라면, getActiveAccounts가 getActiveAccount를 포함하는 개념이기 때문에, getActiveAccounts를 사용하는 것이 더 좋을 것 같다.
TMI
개인적으로 하고 있는 투두 리스트에서, Todo를 불러오는 메소드명 이름을
getTodo와 getTodos 중 어느 것을 할까 생각하다가, 위와 같은 이유로 getTodos로 결정하였다.
3.인코딩을 피해라. (근데 어떻게...?)
인코딩이라는 단어를 여기서 만나니 처음에 어떻게 받아들여야 할지 모르겠다.대략적으로 특정 내용을 함축하여 사용하지 말아라는 내용으로 생각해면 될 것 같다.
특히, 인터페이스 사용할때 과도한 정보를 제공하지 않기 위하여, I 접두어를 피하라고 하는데, 지금까지 내가 한걸 생각해보면...🙄
interface TodoInterface{
content:string,
priority:number,
...
}
𝙒𝙤𝙤𝙮𝙖𝙣𝙤...
Google Typescript Style Guide에서는 다음과 같이 설명한다.
책 읽다보니 팩토리 패턴에 대해서 자꾸 나오는데, 예전 수업자료를 다시 찾아봐야겠다
#노마드코더 #북클럽 #노개북