Clean Code를 읽고 내용을 정리한 것입니다.
책 구매하러 가기
1. 의도를 분명히 밝혀라
boolean flag; // 무슨 의미?
boolean isDarkMode;
boolean isLightMode;
flag라는 이름엔 아무 의미가 담겨있지 않다.
isDarkMode / isLightMode처럼 의도가 드러나는 이름을 사용해야 코드 이해와 변경이 쉽다.
2. 그릇된 정보를 피하라
1) 개발자에게 List는 자료구조를 의미한다. 실제로 List가 아닌 것들은 List라는 의미를 붙이지 않는 편이 좋다.
2) 흡사한 이름을 사용하지 않는다. 일관성이 떨어지는 표기법은 오해를 낳는다.
List/Queue 등 자료구조나 기술을 의미하는 단어는 개발자에게 친숙하다.
실제로 대중적인 기술명을 변수 이름에 담으면 이해하기 더 쉽다.
List<Integer> userCountList;
Queue<Integer> jobQueue;
3. 의미 있게 구분하라
컴파일이 목적인 이름은 사용하지 않는다.
int a1, a2, a3;
a1, a2, a3에는 아무런 정보가 들어있지 않으며 붙은 숫자만 다를 뿐이다. 개발자의 의도를 담기 어렵다.
이름이 다르다면 의미도 달라져야 한다.
불용어를 추가한 이름도 정보를 제공하기 어렵다.
keyboardInfo, keyboardData라는 두 변수가 있는 경우 info나 data의 의미를 구분하기 어렵다.
4. 발음하기 쉬운 이름을 사용하라
한국 사람들은 외국 사람들에 비해 숫자를 잘 외운다고 한다.
456789라는 수가 있을 때, 한국사람들은 한 숫자에 한 글자씩 붙여 '사오육칠팔구'로 외우지만
영어권의 사람은 'four five six seven eight nine'으로 읽는다.
한국어로는 6글자로 읽을 수 있지만 영어는 11글자를 읽어야한다.
코드도 마찬가지다. 읽기 쉬워야 기억하기도 쉽고 이해하기도 쉽다.
long ctm;
long createTime;
5. 대상의 타입에 따라 적절한 형태의 단어를 사용하라
1) 클래스나 객체는 명사/명사구가 적절하며 동사는 사용하지 않는다.
2) 메소드명은 동사/동사구가 적합하다.
생성자가 오버로드가 되어 있다면 정적 팩토리 메소드 패턴을 사용하는 것이 편하다.
User user = new User(userId);
User user = User.fromUserId(userId); // 훨씬 보기 편하다.
6. 한 개념에 한 단어를 사용하라.
DataManager
DataConfiguration
DataDriver
...
만약 Manager / Configuration / Driver에서 하는 역할이 동일하다면 같은 단어로 통일해서 사용한다.
몇 가지 단순한 원칙만 지켜도 코드 가독성이 높아지고 생산성이 향상됨을 느낄 수 있다.
'IT 도서 > Clean Code' 카테고리의 다른 글
[Clean Code] 시스템 (0) | 2020.02.16 |
---|---|
[Clean Code] 클래스 (0) | 2020.02.16 |
[Clean Code] 단위 테스트 (0) | 2020.02.15 |
[Clean Code] 주석 (0) | 2020.02.14 |
[Clean Code] 함수 (0) | 2020.02.13 |