읽기 좋은 코드가 좋은 코드다 Ch 3

오해할 수 없는 이름들

더스틴 보즈웰, 트레버 파우커

Alt text

느낌표 ! (인상 깊은 문장 | 문맥)

Filter

대상을 ‘고르는’ 것인지 아니면 ‘제거하는’ 것인지 불분명하다. 대상을 ‘고르는’ 기능을 원한다면 select() 가, 대상을 ‘제거하는’ 기능을 원한다면 exclude() 가 더 낫다

p.50

경계 포함 여부에 따른 변수명

min, max

경계를 포함하는 한계값을 다룰 때는 min 과 max 를 사용해라

p.51

first, last

경계를 포함하는 범위에는 first 와 last 를 사용하라

p.52

begin, end

경계를 포함하고 / 배제하는 범위에는 begin 과 end 를 사용하라

p.53

경계가 필요한 경우 대체로 자연스럽게 min, max 혹은 start, end 로 정의하곤했는데 저자가 말하는대로 (min, max), (first, last), (begin, end) 를 상황에 맞게 써야겠다. 이러한 변수명이 코드 이해와 버그를 줄 일 수 있는 것 같다. 한편으로는 이러한 경계와 관련해서 불편함을 인식하지 못했다는게 아쉽다.

불리언 변수에 이름 붙이기

이름에서는 의미를 부정하는 용어를 피하는 것이 좋다.

disable_ssl = false;

대신

use_ssl = true;

p.54

사용자의 기대에 부응하기

프로그래머들은 대개 get 으로 시작되는 이름의 메소드는 ‘가벼운 접근자’ 로서 단순히 내부 멤버를 반환한다고 관행적으로 생각한다.

getMean() 은 과거 데이터를 순차적으로 짚어가면서 동적으로 중앙값을 계산한다.

이러한 메소드명을 computeMean() 처럼 고쳐서 시간이 제법 걸리는 연산이라는 사실을 명확하게 드러내는 것이 좋다.

가져온다는 개념이면 거의 대부분 get 으로 시작하게 명명하였는데 읽고 탄식하기도 있지만 한편으로는 이제 알게되었으니 기분 좋기도 했다. 그냥 읽고 끄덕끄덕 것과 다르게 깨닫는 느낌이면 은은하게 기분이 좋은 것 같다. 몸소 경험했던 것이 떠오르기 때문일 것이다.

Chapter 3 느낌

Chapter 3 에서는 별 의식 없이 사용하던 경계 변수명, get* 등이 어떤 의미에서 잘못된 코드라는 것을 깨닫고 강제로 겸손하게 하는 것 같다. 아직 한참한참 부족하구나를 다시금 인지하게한다.


실용주의 프로그래머 Topic 4

Topic 4 돌멩이 스푸와 삶은 개구리

실용주의 프로그래머 Topic 5

Topic 5 적당히 괜찮은 소프트웨어

NCloud LB & SourcePipeline 구축하기
tech collection 서비스 성능 개선하기
Selenium 복권 구매 자동화 만들어보기
디자인 패턴
책 리뷰
블로그 챌린지