리뷰: The Art of Readable Code
“어떻게 하면 읽기 쉬운, 혹은 이해하기 쉬운 코드를 짤 것인가"에 관한 책. 짧은 에세이 몇 편이라고 생각하면 된다. 180 페이지 정도 밖에 안됨…
크게 세 가지 주제를 다룬다:
- 표면적인 것 개선하기 (Surface-level improvements): 변수 명 짓기, 코멘트 달기/달지 말기,
- 반복문과 로직 단순하게 만들기 (Simplifying loops and logic): 읽기 쉬운 구조로 짜기; 중간 변수 뽑기; 거대한 expression쪼개기 등등
- 코드 재조직하기 (Reorganizing your code): 리팩터링에 가까운 이야기들; 한 번에 하나의 일만 하게 코드 뽑아내기 등등
- (덤. 추가 주제; 테스팅만 다룸)
대략 이런 예제들이 나온다1:
pp. 78 – 79 의 중첩된 루프 제거하기:
for (int i = 0; i < results.size(); i++) {
if (results[i] != NULL) {
non_null_count++;
if (results[i]->name != "") {
cout << "Considering candidate…" << endl;
// …
}
}
}
를 이렇게 바꾼다:
for (int i = 0; i < results.size(); i++) {
if (results[i] == NULL) continue;
non_null_count++;
if (results[i]->name == "") continue;
cout << "Considering candidate…" << endl;
// …
}
뭐 이렇게 간단한 거 말고도 리팩터링 책에서 말하는 메서드/멤버 함수 뽑아내기, 한 메서드/멤버 함수에서 한 가지 일만 하기 등등 같은 것도 다룬다.
엄청 큰 내용을 다루는 것은 아니지만,
- 읽기 쉬운 코드에 대한 (저자 주관이 담겨있지만) 개념 정리
- 간단한 실례들.
- 적당한 follow-up 글/책을 알려줌
정도가 있으니 어느 정도 “읽기 좋은 코드"에 신경을 쓰게 될 것 같고, 이 이후에 따라가기도 편한 듯 싶다.
게다가 챕터 구성이 처세술 책 같다 – 이거 칭찬임; 중요한 내용을 서두에 던지고, 설명하고, 요약하는 구성을 사용하기 때문에 머리에 잘 남는다.
ps. 정작 이 책을 읽었으면 하는 사람들은 안 읽을 거 같다.
-
예제는 C++, JavaScript, Python, Java(?) 위주; 어려운 문법은 안 나온다. ↩︎