728x90
반응형
의도를 분명히 밝혀라
- 변수, 함수, 클래스명을 보고 주석이 필요 없는 이름이 중요하다 (진짜다)
-
int elapsedTimeInDays; int d; or int time;
elaspedTimeInDays
가 훨씬 직관적이다.x[0] == 1
대신flag[SELECTED] == 1
이 좀 더 직관적이다. (매우 인정)- 의도를 함축하지마라 (
닌자코딩 금지, 1장에서도 언급됨) 결론 : 읽는 사람이 알도록 이름을 지어라.
발음하기 쉬운 이름을 사용하라
제니md흠스 변수좀 고쳐주세요!
-
private Date genymdhms; // 이게 사람이 할짓인가? 실화를 바탕으로 재구성(generate date, year, month, day, hour, min, sec) private Date generationTimeStamp; // 주석이 필요 없다.
검색하기 쉬운 이름을 사용하라
int e
로하면 검색하기가 굉장히 힘들다. 하지만int WORK_DAYS_PER_WEEK
은 검색이 훨씬 쉽다.- 검색의 관점에서 보면 긴 단어가 검색에 유리한건 맞다!
But!!
아직 나에게는 그렇게 와닿지는 않는다.
자신의 기억력을 자랑하지 마라
명료함이 최고다
string url; 대신에 string r; 로 해놓는 짓은 하지 말자. (협업을 해야하니까)
클래스이름, 메서드이름 명명규칙 (중요)
- 클래스이름 : 명사 or 명사구
(ex : Customer, WikiPage, AddressParser)
Manager, Data같은것들은 피하고 동사를 사용하지 않는다. - 메서드이름 : 동사 or 동사구 (javabean 표준에 따른다, 우리는 js, ts를 쓰지만 충분히 보기 좋아보인다.)
- 접근자(Accessor) : 앞에 get을 붙인다.
(ex : getId, getUserName)
- 변경자(Mutator) : 앞에 set을 붙인다.
(ex : setId, setUserName)
- 조건자(Predicate) : 앞에 is를 붙인다.
(ex : isValidUserName, isValidPassword)
- 접근자(Accessor) : 앞에 get을 붙인다.
한 개념에 한 단어를 사용하라 (와닿았음)
- 값을 가져오는 메서드를 각 클래스마다 이름을 다르게 구현하는 경우가 있다.
(ex : fetch, retrieve, get)
좋지 않은 습관이다.
의미 있는 맥락을 추가하라 ( 의도를 분명히 밝히는것과 연관 )
firstName, lastName, state
이것만 보고 이름과 주소를 합친건지, 주소인지 알 수 있는가?- 앞에
addr
을 붙인다면,addrFirstName, addrLastName, addrState
주석이 필요없는 변수명 아름답다!
우리 팀이 가져가야할 결론
- 의미있는 이름을 짓자.
date? (ㄴㄴ), lectureStartDate (OK)
- 혼자하는게 아닌 협업이다. 올바른 변수명으로 주석이 필요없는 변수명을 지향하는 습관을 들입시다!
728x90
반응형
'WEB > Clean Code' 카테고리의 다른 글
[Clean Code] 5장. 형식 맞추기 (0) | 2022.02.20 |
---|---|
[Clean Code] 4장. 주석 (0) | 2022.01.23 |
[Clean Code] 3장. 함수 (0) | 2022.01.22 |
[Clean Code] 3장. 함수 (0) | 2022.01.22 |
[Clean Code] 1장. 깨끗한 코드 (0) | 2021.12.26 |