실용주의 프로그래머 Topic 9

Topic 9 DRY: 중복의 해악

데이비드 토머스, 앤드류 헌트

Alt text

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

DRY: 반복하지 말라 (Don’t Repeat Yourself)

p.43

저자가 반복하지 말라는 것은 단순히 코드만을 의미하지 않고 있다. 문서, 명세 등을 포함하는 의미로 반복하지 말라고 설명하고있다. 수수료 계산을 하는 코드인데 줄마다 주석을 달아놓으면 추후 수수료 계산식이 달라지면 코드와 주석을 같이 수정해야한다면 이것은 DRY 을 위배했다고 설명하고있다. 코드의 한 측면을 바꿨는데 여러 곳을 바꾸고 있다면 DRY 하지 않다고 보고있다.

가능하다면 언제나 객체의 속성을 읽고 쓸 때 접근자(accessor) 함수를 사용하라.

p.50

일상적으로든 코드 리뷰를 통해서든 다른 사람의 소스 코드와 문서를 반드시 읽어라. 다른 사람의 것을 기웃거리는 게 아니고, 거기서 배우는 것이다. 그리고 기억하라. 접근은 상호적이다. 다른 사람이 여러분의 코드를 들여다보고 건드린다고 해서 기분 나빠하지 말 일이다.

p.53

과거에는 코드 리뷰를 생각한 것보다 많이 받으면 기분이 좋지 않았다. 그렇지만 이제 코드 리뷰도 하다보니 느낀 것은 코드 리뷰가 없으면 잘못된 방향으로 더 갔다가 되돌아 와야하는 것을 미리 막는 것이라는 것을 깨달았다. 명세를 잘못 이해하고 있었거나 구현되어있는 기능을 찾지 못해서 다시 만들고 있다던가 보안, 테스트 케이스 등 전부분에서의 리뷰는 빠른 길로 갈 수 있도록 도와주는 것이다. 그러기에 리뷰가 없는 것보다 많은 것이 훨씬 아웃풋이 잘 나올 수 있을 것이다.

Topic 9 느낌

Topic 9 에서는 반복하지 말라고 강조하는데 이는 휴먼 에러를 줄이도록 하는 것 같다. 좀 더 넓게 보자면 테스트 & 배포도 일일이 나누어 개발자가 직접 진행한다면 DRY 위반한 것이라고 본다. DRY 를 지키려면 CI/CD 환경이 필수적이겠다.


실용주의 프로그래머 Topic 8

Topic 8 좋은 설계의 핵심

실용주의 프로그래머 Topic 10

Topic 10 직교성 (orthogonality)

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