개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.20
오늘 읽은 범위
2장. 의미 있는 이름
책에서 기억하고 싶은 내용을 써보세요.
의도를 분명히 밝혀라: 변수(혹은 함수나 클래스)의 존재 이유는? 수행 기능은? 사용 방법은? 따 로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다.(p.22)
그릇된 정보를 피하라: 중복인 의미나 모호한 표현을 피하라. (ex. O 나 L 은 0과 1혹은 i로 보인다, list가 아닌데 이름에 list라고 하는 것 ) (p.24)
의미 있게 구분하라: 연속적인 숫자를 덧붙인 이름(a1, a2, …, aN)은 의도적인 이름과 정반대다.(p.25-26)
발음하기 쉬운 이름을 사용하라(안 좋은예:genymdhmsgenerate-> date, year, month, day, hour, minute, second) (p.27)
검색하기 쉬운 이름을 사용하라 (p.28)
인코딩을 피하라(p.29)
코드를 읽을수록 접두어는 관심 밖으로 밀려난다.(p.30)
똑똑한 프로그래머와 전문가 프로그래머 사이에서 나타나는 차이점 하나만 들 자면, 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다. 전문가 프로그래머는 자신의 능력을 좋은 방향으로 사용해 남들이 이해하는 코드를 내놓는다. (p.31-32)
클래스 이름: 명사나 명사구가 적절하다. Manager, Processor, Data, Info 등과 같은 단어는 피하고, 동사는 사용하지 않는다. (p.32)
메서드 이름: 동사나 동사구가 적합하다, postPayment, deletePage, save 등이 좋은 예시이고 Accessor, Mutator, Predicate는 javabean 표준4에 따 라 값 앞에 get, set, is를 붙인다. (p.32)
한 개념에 한 단어를 사용하라 (p.33)
집중적인 탐구가 필요 한 코드가 아니라 대충 훑어봐도 이해할 코드 작성이 목표다.(p.34)
의미 있는 맥락을 추가하라(p.35)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
이번 장에서 읽은 부분은 매우 실용적인 정보가 많았다. 이 책을 더 읽거나 다 읽고 나서도 이번 장은 한 번 더 읽어야 내용을 더 잘 흡수할 수 있을 것같다.
이번 내용도 알차지만 실천이 많이 필요한같다!
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
인코딩을 피하라 : 사람이 인지할 수 있는 형태의 데이터를 약속된 규칙에 의해 컴퓨터가 사용하는 0과 1로 변환하는 과정(p.29)
불용어noise word/stop word: 의미가 없는 단어(p.26)
인터페이스 클래스와 구현 클래스: 인터 페이스 클래스 이름과 구현 클래스 이름 중 하나를 인코딩해야 한다면 구현 클래스 이름을 택하겠다. (p.31) ----> 여기서 인코딩을 해야한다는게 무슨 뜻이고, 그 둘 중 하나를 왜 선택해야하는지 잘 모르겠다...
우수한 프로그래머와 설계자라면 해법 영역과 문제 영역을 구분할 줄 알아야 한다. 문제 영역 개념과 관련이 깊은 코드라면 문제 영역에서 이름을 가져와야 한다.(p.35)----> 여기에서 해법 영역과 문제 영역이 정확히 무슨 뜻인지 잘 모르겠다...
리팩터링 도구(p.38)