노개북 2기 3일차
- 2장 의미 있는 이름(pp.22~38)
조언 목록과 내용을 내맘대로 요약 발췌하고 감상평을 짧게 정리함
p.22
좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다.
실제도 배열 변수 이름을 그냥 큰 고민 없이 지은 적이 있었다. 크롤링 시에 for문 안에서 해당 배열에 요소를 추가하고, 이후 다른 배열에 머지하기 위해 잠깐 사용하는 배열이었다.
크게 중요하지 않을 것 같아 의미 없이 $arr = [];
로 썼다가 코드 리뷰 때 용도에 맞는 이름으로 변경해달라는 피드백을 받고 $urls = [];
로 바꿔주었다. 사소하지만 보다 의미와 용도가 명확해졌다.
p.27
발음하기 어려운 이름은 ... 바보처럼 들리기 십상이다. ... 프로그래밍은 사회 활동이기 때문이다.
p.31
문자 하나만 사용하는 변수 이름은 ... 대부분 적절하지 못하다. 독자가 실제 개념으로 변환해야 하니까.
p.31-32
똑똑한 프로그래머와 전문가 프로그래머 사이에서 나타나는 차이점 하나만 들자면 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다. 전문가 프로그래머는 자신의 능력을 좋은 방향으로 사용해 남들이 이해하는 코드를 내놓는다.
똑똑하다고 전문가는 아니다. 나의 똑똑함을 과시하는 이해하기 난해한 코드보다, 다른 개발자들이 읽고 이해하기 쉬운 코드가 더 좋은 코드라는 생각이 든다. 내가 다른 사람들에게 같이 일하고 싶어하는 동료가 된다면 더 멀리, 더 즐겁게 앞으로 나아갈 수 있다. 어디에 있던지 그런 사람이 될 수 있게 전문가의 마음가짐을 갖고 코드를 작성하려고 노력하자.
fetch
, retrieve
, get
등등 다르게 쓰면 혼란스러움add
가 두 값을 더해서 반환하는 개념으로 쓰이고 있다면, add
를 쓰면 안됨insert
나 append
로 쓰는 것이 적당state
변수를 사용하면 혼자 있을때 의미가 불분명해짐addrState
라고 써주는 것이 좋음Address
클래스를 생성하면 더 좋음ABCAccountAdress
인 것보다 그냥 AccountAdress
라고 써주는 것이 더 적절함2022-02-22: 업무 중에 마침 2장의 내용에서 말하는 것과 딱 들어맞는 코드를 찾아서 첨부한다.
밑에 코드를 보고 각 변수가 어떤것을 의미하는지 유추해보자.
$one_day_posting = 0; // 하루 포스팅 가능 갯수..?
$today_remain = 0; // 오늘 남은 갯수
$today_posting1 = 0; // 오늘 포스팅 1...??
$today_posting = 0; // 오늘 포스팅....???
주석 없이는 도대체 뭘 의미하는지 모르겠다. 이제 실제로 변수가 어떤 목적으로 사용되는지 주석을 같이 보자.
$one_day_posting = 0; // 1일 이내 권장 등록 수.
$today_remain = 0; // 오늘 등록 가능한 수.
$today_posting1 = 0; // 1일 이내에 등록한 수.
$today_posting = 0; // 3일 이내에 등록한 수.
주석을 같이 보니 $today_remain
정도를 제외하고는 왜 이름을 저렇게 지어놨는지 이해가 안된다. 아니, 주석을 보니까 더 모르겠다. 이쯤 되면 그냥 이해하고 싶지 않다.
마침 위의 변수들이 사용되는 부분을 고칠 수 있는 기회가 왔으니, 뒤엎어 버릴테다. 어떻게 바꿀지 잠깐 생각해보았다.
1일 이내
, 3일 이내
에 붙은 today_
는 지워준다.몇일 이내
보다는 최대 일수 이내
를 의미하도록 바꿔준다.이 정도를 생각하면서 다시 변수명을 지어보았다. 변수명만 보고도 어떤 값을 가지고 있는지 알 수 있게 하려고 해보았다.
$recommendedCountPerDay = 0; // 하루 권장 등록 수.
$remainingCountToday = 0; // 오늘 등록 가능한 수.
$postedCountInOneDay = 0; // 1일 이내에 등록한 수.
$postedCountInMaxDays = 0; // 최대 일수 이내에 등록한 수.
더 좋은 이름이 있을 수 있겠지만 최소한 위에서 사용한 의미 불명의 변수명들보다는 좋아졌다고 생각한다.
인터넷 검색 시 검색 용어로 사용하지 않는 단어. 관사, 전치사, 조사, 접속사 등 검색 색인 단어로 의미가 없는 단어이다. 다만 각 검색 엔진마다 동일하지 않기 때문에 다를 수도 있다. 네이버 IT용어사전