이해하기 힘든 이름
냄새 1. 이해하기 힘든 이름
- 깔끔한 코드에서 가장 중요한 것 중 하나가 바로 "좋은 이름" 이다.
- 함수, 변수, 클래스, 모듈의 이름 등 모두 어떤 역할을 하는지 어떻게 쓰이는지 직관적이어야 한다.
- 사용할 수 있는 리팩토링 기술
Tip
- 함수 선언 변경하기 (Change Function Declaration)
- 변수 이름 바꾸기 (Rename Variable)
- 필드 이름 바꾸기 (Rename Field)
리팩토링 1. 함수 선언 변경하기
함수 이름 변경하기, 메소드 이름 변경하기, 매개변수 추가하기, 매개변수 제거하기, 시그니처 변경하기
- 좋은 이름을 가진 함수는 함수가 어떻게 구현되었는지 코드를 보지 않아도 이름만 보고도 이해할 수 있다.
- 좋은 이름을 찾아내는 방법? 함수에 주석을 작성한 다음, 주석을 함수 이름으로 만들어 본다.
- 함수의 매개변수는
- 함수 내부의 문맥을 결정한다. (ex. 전화번호 포매팅 함수)
- 의존성을 결정한다. (ex. Payment 만기일 계산 함수 -> Payment 타입을 넘겨주거나 Payment.dueDate만 넘겨줄수도 있다.)
리팩토링 2. 변수 이름 바꾸기
- 더 많이 사용되는 변수일수록 그 이름이 더 중요하다.
- 람다식에서 사용하는 변수 vs 함수의 매개변수
- 다이나믹 타입을 지원하는 언어에서는 타입을 이름에 넣기도 한다.
- 여러 함수에 걸쳐 쓰이는 필드 이름에는 더 많이 고민하고 이름을 짓는다.
리팩토링 3. 필드 이름 바꾸기
- Record 자료 구조의 필드 이름은 프로그램 전반에 걸쳐 참조될 수 있기 때무에 매우 중요하다.
- Record 자료 구조: 특정 데이터와 관련있는 필드를 묶어놓은 자료구조
- 파이썬의 Directories, 또는 줄여서 dicts
- C#의 Record
- 자바14 버전부터 지원 (record 키워드)
- 자바에서는 Getter와 Setter 메소드 이름도 필드의 이름과 비슷하게 간주할 수 있다.