-
2018년에 NHN 채용설명회에 갔다가 받은 책!
-
이 책을 관통하는 핵심 아이디어는, 코드는 이해하기 쉬워야 한다는 것
-
자신의 코드를 다른 사람이 읽고 이해할 때 걸리는 시간을 최소로 만들어야 한다.
-
- 메시지 발행과 구독하기
- 카프카 살펴보기
- 카프카를 사용하는 이유
-
- 이름에 정보 담기
- 오해할 수 없는 이름들
- 미학
- 주석에 담아야 하는 대상
- 명확하고 간결한 주석 달기
-
- 읽기 쉽게 흐름제어 만들기
- 거대한 표현을 잘게 쪼개기
- 변수와 가독성
-
- 상관없는 하위문제 추출하기
- 한 번에 하나씩
- 생각을 코드로 만들기
- 코드 분량 줄이기
-
- 테스트와 가독성
- 분/시간 카운터를 설계하고 구현하기
- 추가적인 도서목록
🏠 돌아가기
- 가독성의 기본 정리
- 코드는 다른 사람이 그것을 이해하는 데 들이는 시간을 최소화하는 방식으로 작성되어야 한다.
- 분량이 적다고 해서 항상 좋은 것은 아니다
-
좋은 이름을 짓고, 좋은 설명을 달고, 코드를 보기 좋게 정렬하는 것들
-
이러한 수정은 반영하기 쉽고, 많은 시간을 투자할 필요가 없다.
-
특정한 단어 고르기 : 매우 구체적인 단어를 선택해 무의미한 단어 피하기!
def getPage(url): // 어디서 가져오는건지 명확하지 않음 class BinaryTree { int size(); // 무엇을 반환하는 건지 알 수 없음 } class Thread { void Stop(); // 정확히 무엇을 수행하는지 알 수 없음 }
-
더 화려한 단어 고르기 : 상황에 더 적합할 수 있는 단어를 고르자
단어 대안 send deliver, dispatch, announce, distribute, route find search, extract, locate, recover start launch, create, begin, open make create, setUp, build, generate, compose, add, new - 화려한 단어가 꼭 좋은 것만은 아님에 주의하자
-
보편적인 이름 피하기 :
tmp
,retval
,foo
같은 이름들 말고... 개체의 값이나 목적을 정확하게 설명하자- 보편적인 이름을 사용하려면, 꼭 그렇게 해야 하는 이유가 있어야 한다
-
추가적인 정보를 이름에 포함하기 : 단위/중요한 속성 등의 정보를 포함시키자
-
이름이 지나치게 길면 안된다!
newNavigationControllerWrappingViewControllerForDataSourceOfClass
- 보기만 해도 기억하기 어렵고... 화면도 너무 많이 차지함...
- 좁은 범위에서는 짧은 이름이 괜찮다 : 좁은 범위면 많은 정보를 담을 필요가 없다.