1. 이름을 잘 짓는 규칙
1) 의도를 분명히 밝혀라
ex) int d (x)
int daySinceCreation;
2) 그릇된 정보를 피하라
(1) 나름대로 널리 쓰이는 의미 있는 단어를 다른 의미로 사용하면 안됨
ex) List는 프로그래머에게 특수한 의미다
Lixt(x) -> accountList
(2) 서로 흡사한 이름을 사용 하지 않기
ex) XYGControllerForEfficientHandlingOfStrings, XYZControlerForEfficientStorageOfStrings 두 단어는 너무 비슷
(3) 이름 쓰는 것을 조심하기
: 소문자 L이나 대문자 O 변수는 주의 - l은 1과 O,o은 0과 비슷
ex) if(O ==1 ) a= 01;
3) 의미있게 구분하라
ex) moneyAcoount, money는 구분이 안됨, accountData, accout는 구분이 안됨
4) 발음하기 쉬운 이름을 사용하라
: 발음하기 어려운 이름은 토론하기도 어려움
ex) genymdhms : generate date year month day hour minute second를 줄여 변수명을 정했는데
generationTimestamp이게 더 나음
5) 검색하기 쉬운 이름을 사용하라
: 변수나 상수를 여러군데 쓴다면 검색하기 쉬운 이름이 좋음
6) 인코딩을 피하라
: 인코딩 언어까지 익히라는 것은 개발자에게 비합리적, 인코딩은 불필요한 정신적 부담
ex) 인터페이스와 구현 클래스를 만들어야 한다면
IShapeFactory (x) -> ShapeFactoryImp or CShapeFactory
-> I는 주의를 흐트리고 과도한 정보를 제공함
7) 자신의 기억력을 자랑하지 마라
: 변수 이름을 자기 자신만 아는 이름으로 변환하는 것은 바람직하지 못함
: a, b, c를 사용하는 것은 최악
(1) 클래스 이름 : 명사나 명사구가 적합
ex) Customer, WikiPage
(2) 메서드 이름 : 동사나 동사구가 적합
ex) postPayment
8) 기발한 이름은 피하라
ex) whack() (x) -> kill() (o)
# whack은 세게 후려치다, 살해하다 뜻을 가지고 있음
9) 한 개념에 한 단어를 사용하라
:추상적 개념 하나에 단어 하나를 선택해 이를 고수
ex) controller, manager, driver를 섞어 쓰면 혼란스러움
10) 말장난을 하지마라
: 의도에 맞는 코드를 써라
ex) add를 많이 쓰고 일관성을 맞추려 add라고 하지말고, insert, append처럼 상황에 맞는 이름을 써라
11) 해법영역에서 가져온 이름을 사용하라
: 전산용어, 알고리즘 이름, 패턴 이름, 수학 용어를 사용해도 괜찮음(모르는 영역에서 가져오면 안됨)
ex) Visitor패턴에 익숙한 사람은 AccountVisitor를 금방 이해, JobQueue도 프로그래머는 거의 다 이해
12) 문제영역에서 가져온 이름을 사용하라
: 적절한 프로그래머 용어가 없다면 문제영역에서 이름을 가져옴
: 문제영역 개념과 관련 깊은 코드면 문제영역에서 이름을 가져와야 함
13) 의미있는 맥락을 추가하라
: 스스로 의미가 분명한 이름이 있음
ex) firstName, lastName, street, houseNumber -> 변수를 보면 주소라는 사실을 금방 아래챔
-> addr이라는 접두어를 추가하면 addrFirstName, addrStreeet 등 맥락이 좀 더 분명해짐
14) 불필요한 맥락을 없애라
: 고급 휘발유 충전소(Gas Station Deluxe)라는 앱을 개발한다고 모든 클래스를 GSD로 이름을 시작하게끔 하는 것은 불필요함
-> 이름 17자 중 10자가 중복이면 불필요 -> 일반적으로는 이름이 짧은게 긴거보다 좋음
'Web Programming' 카테고리의 다른 글
[Javascript] LocalStorage, SessionStorage에 저장하기 / 브라우저별 Storage 용량 제한 (0) | 2018.11.21 |
---|---|
[Javascript] 브라우저 언어 가져오기 (0) | 2018.11.21 |
D3.js 빠르게 알아보기 (0) | 2018.10.11 |
SW개발자와 디자이너가 가까워지는 법 (0) | 2018.08.07 |
반응형 웹 (0) | 2017.09.21 |