2. 이름에 정보 담기
이름에 정보를 담자.
특정 단어 고르기 👍
무의미한 단어 피하기 #1
로컬 캐시, 데이터베이스 데이터 출처가 어디일까?
db에서 가져온다면 fetchPage
가 명확하다.
무의미한 단어 피하기 #2
size는 트리의 높이/노드의 개수/트리의 메모리 사용량 뭘 반환할까? Height/NumNodes/MemoryBytes 와 같이 정보를 담을 수 있다.
무의미한 단어 피하기 #3
stop이 다시는 되돌릴 수 없는 동작/다시 돌이킬 수 있는 동작 뭐하는 동작일까? (이건 Thread 맥락에서 분석) kill/pause와 같이 정보를 담자.
화려한 단어 고르기 👍
send : deliver, dispatch, announce, distribute, route
find : search, extract, locate, recover
start : launch, create, begin, open
make : create, set up, build, generate, add, new
추상적인 거 말고 구체적 이름 선호하기 👍
--run_locally라는 명령 플래그는 다음을 수행한다.
프로그램 디버깅 정보 출력
동작 속도 느림
주로 로컬에서 테스트할 때 사로
--run_locally가 가진 문제
무엇을 위한, 왜 필요한지를 담아내지 못함
원격 컴퓨터에서도 디버깅 정보 출력할 수 있는데 locally라는 단어는 혼란 초래
로컬 컴퓨터에서 성능 검사 하고 싶은데 run_locally라는 단어 때문에 사용했다가 원치 않는 성능 저하됨.
정말 문제는 실제 내용 보다 주로 사용하는 환경을 나타내는 방식으로 이름이 지어짐
--extra_loggin 이 더 명확.
이 때, 로그남기는 일 외에 다른 일을 한다면? 예컨대 DB 설정하고 사용하는 일이있다.
run_locally가 좀 더 나아보이지만 이 이름 선택하는 이유가 모호하므로 좋은 이름 아니다. 걍 플래그를 2개로 쪼개자.
--use_local_database와 같이 새로 생성하자.
변수는 작은 설명문이다.
변수와 관련한 가장 중요한 정보를 추가적인 '단어'로 만들어서 이름을 붙이자.
단위를 포함하는 값들
변수가 시간의 양, 바이트의 수와 같은 정량적인 값을 갖는다면, 변수명에 단위 를 포함시키자.
위 코드는 getTime()이 초가 아닌 ms를 반환하기 때문에 _ms
로 수정하자.
다른 중요한 속성 포함하기
변수에 위험한 요소가 있다면 변수 이름에 정보를 추가작성하자.
예컨대, 일부 데이터가 아직 불안전하다면
untrustedUrl
, unsafeMessageBody
와 같이 보완하자.
안전하게 만들고 난 다음
trusteddUrl
, safeMessageBody
변수에 다시 담자.
여러가지 상황 plaintext_password, unescaped_comment, html_utf8, data_urlenc 암호화 필요한 평문 패스워드, 이스케이프 처리되야아할 코멘트, utf-8로 변환된 html, url encoded된 데이터
pla
위와 같은 정보를 항상 담을 필요는 없지만, 변수를 잘못 이해하고 사용시 심각한 결과를 낳을 가능성이 있을 때 유의미
이름은 얼마나 길어야 할까?
너무 길어도 너무 짧게해도 문제. 케바케로 하자.
좁은 범위에서는 짧은 이름이 괜춘
좁은 범위에서만 사용되는 변수의 이름에는 많은 정보를 담을 필요가 없다.
왜냐면 범위가 작아서 한눈에 들어오니까!
하지만 큰 범위에서는 정보를 구체적으로 담자.
Summary
이름에 정보넣기
특정 단어 사용하기. get은 모호하니 fetch, download
대상을 자세히 묘사하는 구체적인 이름 사용하기.
변수명에 세부 정보 붙이기. 단위, 위험요소 전/후로 구분하기
사용 범위가 넓으면 긴 이름, 사용 범위가 작으면 짧은 이름.
Last updated
Was this helpful?