인코딩을 피하라

헝가리식 표기법

  • 변수 및 함수의 인자 이름 앞에 데이터 타입을 명시하는 코딩 규칙이다.
  • ex) nCount, bCheck, sName…
  • 컴파일러가 타입을 점검하지 않았을때 실수를 줄이기 위해 사용하던 네이밍(구식방법)
  • 현재는 IDE나 컴파일러가 굉장히 좋아졌으므로 굳이 이 네이밍을 쓸 필요가 없음.
  • 인터페이스의 경우에도 I 접두어를 안붙이는것이 좋다.

기억력을 자랑하지마라

  • 코드를 읽으면서 머리속에서 변환을 거치게끔 하면 안된다.
  • 누구나 이해할 수 있을 만큼 직관적인 네이밍이 좋은 네이밍이다.

클래스 이름, 메서드 이름

  • 클래스 이름은 명사로, 메서드 이름은 동사로 지어야한다.
  • 클래스 이름에 Data, Info와 같은 애매한 단어의 사용은 금지한다.
  • 메서드 이름의 접두어로는 get, set, is등을 사용한다.

한 개념에 한 단어

  • fetch, retrieve, get … 등의 같은 개념을 다른 단어로 표기하는것을 지양해야한다.
  • 또 다른 예시로는, controller, manager, driver가 있다. (이것도 지양해라)
  • 일관성 있는 네이밍이 중요하다.
  • 예를들어, a와 b를 받아서 a+b를 리턴하는 함수가 있다고 해보자.
    이 함수를 add라고 네이밍했다. 
    근데 새롭게 추가해야할 함수는 리스트에 아이템을 추가하는 함수인데 이 함수의 네이밍을 일관성을 위해 add라고 지어도 될까? 절대 안된다.
    이 함수는 기존 add 함수와 맥락 자체가 다르므로 다른 네이밍을 지어야한다.

개발자에게 익숙한 단어를 사용하라

  • 네이밍을 할때 도메인 보다는 기술 개념이 들어가는것이 좋다.
  • visitor패턴에 친숙한 프로그래머는 AccountVisitor라는 이름을 금방 이해한다. jobQueue라는 네이밍도 좋은 네이밍이다. (기술 개념)
  • 적절한 프로그래밍 용어가 없을때 도메인 용어를 사용하라.
  • 기술 개념과 도메인을 구분하여 내가 만들려고 하는것이 도메인에 가까운지 기술에 가까운지 판단하여 네이밍하라.

의미가 분명한 경우에만, 짧은 네이밍이 긴 네이밍보다 좋다.

대충 읽어봐도 이해할 수 있는 코드가 좋은 코드이다.

이름을 바꾸지 않으려고 하는 이유는 다른 개발자가 반대할까 두려워서이다. 하지만 다른 사람이 더 좋은 네이밍을 제안하면 반갑고 고마워 해야한다.

암기가 필요한 코드는 좋은 코드가 아니다.

profile
생산성 향상에 관심이 많은 프론트엔드 개발자입니다. (인스타, 깃헙 팔로우 환영)

0개의 댓글