실용주의 프로그래머 Topic 44

Topic 44 이름 짓기

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

Alt text

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

올바른 이름으로 부르는 것이 지혜이다.

– 공자

p.341

공자의 격언으로 충분히 많은 것을 얻었다. 보자마자 나의 잘못과 고쳐야할 부분이 태산임이 머릿속에 떠올랐기 때문이다.

우리는 코드에서 하는 역할에 따라 이름을 지어야 한다고 믿는다. 이 말은 무언가를 만들 때마다 잠시 멈춰서 ‘내가 이것을 왜 만드는 거지?’하고 생각해야 한다는 뜻이다. 이 질문은 아주 효과적이다. 여러분이 문제 풀이 사고방식에서 벗어나 더 큰 그림을 보도록 하기 때문이다.

p.341

기능을 만들 때 화면이든 서버 쪽이든 프로그래밍을 할 때 종이에 흐름을 적곤한다. 여기에 더해 함수명과 변수명을 미리 정해놓는다면 더 명쾌한 흐름이 만들어질 수 있겠다는 생각이 든다.

기존에는 단순히 각 단계에서 해야할 부분을 적어놓는 정도였는데 함수명, 변수명까지 적는다면 인용구처럼 더 큰 그림의 사고를 할 수 있을 것 같다.

주문에 할인을 적용하는 인스턴스 메서드가 있다.

public void deductPercent(double amout)

// …

두 가지가 눈에 띈다. 먼저, deductPercent는 ‘이 함수가 하는 일’이지 ‘왜 이 일은 하는지’가 아니다. 다음으로 매개 변수인 amount 는 헷갈린다는 비난을 면하기 힘들다. 할인 금액인가 아니면 할인율인가?

다음과 같이 쓰면 더 나을 것이다.

public void applyDiscount(Percentage discount)

p.343

클린 코드는 인라인, 함수 추출, 위임 등 기법이 있지만 시작과 끝은 좋은 명명인 것 같다. 아무리 의존성을 잘 분리해도 함수명과 변수명에서 오해를 부른다면 좋은 코드가 아니기 때문이다.

당장 바로 그 자리에서. 의도를 제대로 표현하지 못하거나 오해를 부를 수 있거나 헷갈리는 이름을 발견했다면 고쳐야 한다. 혹시 이름을 바꾸는 것을 빼먹은 곳이 있더라도 회귀 테스트가 있으니 여러분의 실수를 발견해 줄 것이다.

Tip74 이름을 잘 지어라. 필요하면 이름을 바꿔라.

p.346-347

만고의 진리인 지금, 당장, 바로를 명심하는 것이 중요하다. 불편함을 봤을 때 바로 고쳐야한다.

Topic 44 느낌

Topic 44 에서는 명명할 때 아리송하더라도 좀 넘어가는 경향이 있었는데 더 고심하는 시간이 필요할 것 같다는 생각을 준다.


GCP Cloud Function ffmpeg troubleshooting

해결 방법

Node Version 18 -> 16 으로 변경

실용주의 프로그래머 Topic 45

Topic 45 요구 사항의 구렁텅이

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