클린코드란?
"읽기 쉬운 코드가 클린코드이다."
by. 로버트 C.마틴 'Clean Code'
- 전체적으로 고려할 사항
- 단일 책임 원칙: 하나의 인터페이가 하나의 역할을 수행해야 한다.
- 변수명
- 의도가 분명한 이름 짓기.
- 검색하기 쉬운 이름 사용.
- 명료한 이름 사용.
- 한 개념에 한 단어 사용. ex. fetch, retrieve, get 등 중 하나만 선택
- 의미있는 맥락 추가. ex. state 보다 address
- 함수
- 동사, 동사구가 적합.
- 인자의 개수
- 이상적인 인수 개수는 0개이며 3개 이상은 가능한 피해야 한다. 4개 이상은 금물.
- 부수효과를 일으키지 말 것.
- 명령과 조회를 분리.
- 뭔가를 수행 or 뭔가에 답하기 둘 중 하나만 하게 하기
- 객체 상태를 변경 or 객체 정보를 반환하거나
- 주석
- 주석은 나쁜 코드를 보완하지 못한다.
- 코드에 주석을 추가하는 이유가 코드 품질이 나빠서가 되어서는 안 된다.
- 주석을 달 바에야 코드를 깔끔하게 정리하기.
- 나쁜 주석
- 코드 내용을 그대로 중복하는 주석
- 편집 이력을 기록하는 주석
- 근처에 있는 코드만 기술해야 하며 시스템의 전반적인 정보 기술하는 것은 좋지 않음.
- 형식 맞추기
- 적절한 행 길이 유지.
- 변수는 사용하는 위치에 최대한 가까이 선언.
- 한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치. 또한 가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치.
- 개념적인 친화도가 높은 코드일 수록 서로 가까이 배치
Code Style Guide
- Indentation (들여쓰기)
- 들여쓰기 할 때는 탭이 아닌 스페이스를 사용하기!(혼용이 제일 최악!)
- Naming (이름 짓기)
- Variable names - 변수명
: 한 단어로 표현하기.
- Boolean names - Boolean 이름
: 관련 변수 이름 앞에 is
또는 are
를 붙임.
- Function names - 함수명
: 동사로 짓기.
- Symbols / punctuation (기호 / 구두점 찍기)
- 중괄호 생략하지 말기.
- Quoting - 인용
: 작은따옴표나 큰따옴표 하나만으로 쓰기.
- Semicolons - 세미콜론
: 항상 쓰기
: if
, for
, while
구문의 끝에는 쓰지 않지만 함수 표현식처럼 선언될 때는 쓰기.