"우아하고 효율적인 코드" : 비야네 스트롭스트롭 - C++ 창시자
- 논리가 간단하고 의존성을 최대한 줄여야 한다(=한 가지를 제대로 해야함)
"잘 쓴 문장처럼 읽히는 코드" : 그래디 부치 - UML 창시자
- 단순하고 직접적이며 설계자의 의도를 표현해야함. 단순한 제어문으로 구성
"문학적으로 표현하는 코드" : 큰 데이븐 토마스 - OTI 창립자
- 의미 있는 이름, 특정 목적을 달성하는 방법을 여러 가지가 아니라 하나만 제공
- 의존성을 최소화하고 의존성을 명확히 정의
=> 읽기 쉬운 코드!
- 의도가 담긴 이름
- 로직을 단순하고 간단하게
- 의존성을 최소화
- 한 가지 일만
WHY?
*버그가 없고 유지보수하기 쉬운 프로그램
-
보편적 이름 피하기
- tmp : temporary
- get : fetch, download
- size : height, numNodes, memoryBytes
-
루프 반복자 이름 짓기
- i, j, k : club_i(ci), member_i(mi), user_i(ui)
-
불린 변수 이름 짓기
- is, has, can, should
- positive expressions needed
-
범위값을 나타내는 변수명 짓기
- 양단 포함 : min/max, first/last, left/right
- 뒷단 불포함 : begin/end
-
조건문에서 인수의 순서
- 유동적인/비교가 되어지는, 고정적인/비교대상으로 사용되는
- 변수, 수
- received, expected
-
if/else 블록의 순서
- 긍정이 먼저
- 간단한 것 먼저
- 더 중요한 것 먼저
-
블록의 중첩 최소화
- if (1) { if (1) { ... }} x