Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back

[Day 2] TIL_2장 의미있는 이름

#clean_code
1년 전
318

TIL - Day 2

오늘 읽은 범위

02. 의미있는 이름

책에서 기억하고 싶은 내용

  • "좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다."

  • 의도를 분명히 밝혀라 - 함축성 (x) > 명시적 (o)

  • 그릇된 정보를 피하라 - 자료구조명, 컴퓨터 os명, l/o 등의 알파벳 등 사용 지양,

    유사한 개념은 유사한 표기법 사용,

    "일관성이 떨어지는 표기법은 그릇된 정보"

  • 의미 있게 구분하라 - 의도적 오타, 연속된 숫자 덧붙임, 불용어(e.g. info, data, a(n), the...) 추가, 변수타입(string, object...) 추가 등 지양

  • 발음하기 쉬운 이름을 사용하라 - "발음하기 쉬운 이름은 중요하다. 프로그래밍은 사회 활동이기 때문이다."

  • 검색하기 쉬운 이름을 사용하라 - 한 글자 이름/상수 사용 지양, "이름 길이는 범위 크기에 비례해야 한다."

  • 인코딩을 피하라 - 유형이나 범위 정보, 멤버변수 여부까지 인코딩에 넣으면 해독 어려워짐.

*인터페이스 클레스 - 구현 클레스 : 인터페이스는 숨기고, 구현 클레스에 표시

  • 자신의 기억력을 자랑하지 마라 - 명료함이 최고

  • 클래스/객체 이름 : 명사(구)

  • 메서드 이름 : 동사(구)

  • 기발한 이름은 피하라 - 의도를 분명하고 솔직하게

  • 한 개념에 한 단어를 사용하라 - e.g., fetch/retrieve/get, controller/manager/driver > 통일

  • 말장난을 하지 마라 - 다른 개념에 한 단어 사용 지양

  • 해법 영역에서 가져온 이름을 사용하라 - 전산용어, 알고리즘 이름, 패턴 이름, 수학용어 허용, 굳이 모든 경우 도메인 영역에서 가져올 필요 없음.

  • 문제 영역에서 가져온 이름을 사용하라 - 도메인 영역 개념과 관련이 깊은 코드

  • 의미 있는 맥락을 추가하라 - 마지막 수단으로 접두어 >> 클레스로 대체 가능

  • 불필요한 맥락을 없애라

오늘 읽은 소감/떠오르는 생각

  • 실제로 적용해보려고 하니 쉽지는 않았다.

궁금한 내용/잘 이해되지 않는 내용

  • (p.25) 컴파일러나 인터프리터만 통과하려는 생각으로 코드를 구현할 때의 문제 예시.

    철자를 살짝 바꿨다가 철자 오류를 고치는 순간??? 컴파일이 불가능.