Skip to content

Session2 DAY 2

Kimgeunwook edited this page Oct 2, 2021 · 1 revision

Session2 DAY 2

모임날짜: 2020-12-05(토)
참여자: 강인한, 김근욱, 최승연, 한승엽
주제: 의미있는 이름 (클린 코드 2장) / DB 구성

Contents

1. 의미있는 이름

1.1 의미 있는 이름을 작성하는 법


1. 의미있는 이름 (클린 코드 2장)

목표: 의미있는 이름을 작성하는 방법을 이해하기

1.1 의미 있는 이름을 작성하는 법
- 의도를 분명히 밝혀라 - int d, list1 → 보고 무슨 의미인지 모를 이름은 쓰지 말자 - if(x[0] == 4) → x[0]이 뭔지, 4가 뭔지 어케 아냐!
    → if(cell[STATUS_VALUE] == FLAGGED) 이렇게 값에도 이름을 붙여주자

    → if(cell.isFlagged()) 처럼 상수를 감춰도 좋다
  • 그릇된 정보를 피하라
    • 줄임말이 다른 의미로 쓰이는 단어라면 쓰지 말자
    • List가 아니라면 List라고 적지 말자
    • 비슷한 이름도 피하자
  • 의미 있게 구분하라
    • 불용어 쓰지 말기(a, the 나 x1,x2,x3...과 같은 숫자들, Info,Data 등 의미 없는 단어)
      • getActiveAccount, getActiveAccountInfo, getActiveAccountData 뭘 호출해야 할지 쉽게 이해할 수 없다
  • 발음하기 쉬운 이름을 사용하라
    • 괜히 약어로 쓰면 팀원들과 의사소통이 힘들어진다 ex) genymdhms - 젠 와이엠디에이치...
  • 검색하기 쉬운 이름을 사용하라
    • 이름을 의미 있게 지으면 함수가 길어진다. 하지만 검색하기는 쉽다.
    • 이름 길이는 범위 크기에 비례하는 것이 좋다.
  • 인코딩을 피하라
    • 자료형 변수 이름에 쓰지 말자
    • 멤버 변수 접두어 m_ 이런것도 쓰지 말자. 클래스나 함수는 접두어가 필요없을 정도로 작아야 마땅하다
  • 자신의 기억력을 자랑하지 마라
    • 변수 이름을 자신이 아는 이름으로 변환해야 한다면 바람직하지 못하다.
    • 명료함이 최고다
  • 클래스 이름은 명사(구), 함수 이름은 동사(구)가 적절하다
  • 기발한 이름은 피하라
    • 드립치지 마셈
  • 한 개념에 한 단어를 사용하라
    • ex) fetch, retrieve, get 등 → 일관성 있게 하나만 사용
  • 말장난 하지 마라
    • 바로 위에서 한 개념에 한 단어 사용하라 했다고 일관성 있게 하기 위해 다른 두 개념을 한 단어로 사용하지도 말자
  • 해법 영역, (안되면) 문제 영역에서 가져온 이름을 사용하라
    • 해법 영역 : 전산 용어, 알고리즘 이름, 패턴 이름 등은 걍 써도 된다. 어차피 읽는 사람도 프로그래머일 것
    • 문제 영역 : 적절한 프로그래밍 용어가 없다면 해당 문제와 관련된 도메인에서 이름을 명명한다.
  • 의미 있는 맥락을 추가하고 불필요한 맥락을 없애라
    • 맥락 개선 : 의미가 분명한 이름이라도

Clone this wiki locally