관리 메뉴

너와 나의 스토리

[Clean Code 클린 코드]를 읽고 - "의미있는 이름"편 본문

개발

[Clean Code 클린 코드]를 읽고 - "의미있는 이름"편

노는게제일좋아! 2020. 12. 12. 22:26
반응형

Clean code 책을 읽으면서 기억하고자 하는 부분들을 정리하려고 한다.

이 책은 읽을때마다 새로운 지식이 보인다고 한다. 이 책을 다음에 다시 읽으면서 새롭게 얻게 되는 지식들을 이 글에 계속해서 추가해나가려 한다.

 

 

 

의도가 드러나는 이름을 사용하자

  • 지뢰 찾기 게임판에서 깃발이 꽂힌 상태를 저장할 변수를 선언한다고 하자.
List<int []> list1 = new ArrayList<int[]>();
  • 다음과 같은 변수명 대신
List<int []> flaggedCells = new ArrayList<int[]>();
  • flaggedCells와 같이 의도가 드러나는 이름을 사용하자.
  • 그렇다면, flaggedCellList로 표시하면 컨테이너 유형도 예측할 수 있어서 좋은 거 아닌가?
    • Nope! 컨테이너 유형을 이름에 넣지 않는 편이 바람직하다. -> 나중에 이유 나옴
    • 또한, 실제 List를 사용하지 않을 때, flaggedCellList와 같이 명명하게 되면, 프로그래머에게 그릇된 정보를 제공하게 됨으로 피해야 한다. 
      • flaggedCellGroup이나, flaggedCells처럼 명명하는 것이 더 좋다.

 

 

검색하기 쉬운 이름을 사용하라

  • 짧은 이름보다 긴 이름이 좋다. 
    • 예를 들어, 변수명을 e로 정했다고 하자. e는 영어에서 가장 많이 쓰이는 문자로, 해당 변수를 검색해서 찾기 굉장히 어려울 것이다.
    • 마찬가지로 상수를 사용할 때, 상수 그 자체로 사용하게  되면, 찾기 힘들 것이다. 상수에 명확한 이름을 부여하여 변수로써 사용하자.

 

클래스 이름

  • 클래스 이름과 객체 이름은 명사나 명사구를 사용하자
  • 좋은 예: Customer, Account
  • 나쁜 예: Manager, Processor, Data, Info

 

메서드 이름

  • 동사나 동사구를 사용하자
  • 좋은 예: postPayment, deletePage, save
  • 접근자(Accessor) -> get
  • 변경자(Mutator) -> set
  • 조건자(Predicate) -> is 
    • Predicate: 논리에서 true/false를 판단&리턴해주는 함수
반응형

'개발' 카테고리의 다른 글

jdk version 모두 확인 및 변경(default Java)  (0) 2021.02.04
[VSCode] Terminal - git bash로 설정하는 방법  (0) 2020.12.29
[MySQL] SyntaxError: Unexpected identifier  (1) 2020.10.31
Django 시작하기!  (0) 2020.10.31
REST API  (0) 2020.08.22
Comments