-
클린 코드의 첫 장은 의미 있는 이름을 짓는 것으로부터 시작한다.
개발을 진행하며 발생한 수없는 버그와 어떻게 하면 좀 더 효율적인 알고리즘을 짤 수 있을까하는 고민으로
고통받아왔던 사람이라면, 고작 이름을 잘 짓는 것이 무슨 대수냐고 반문할 지 모르겠다.
하지만 내 경험에 의하면 의미없는 이름을 짓는 것이 개발을 진행하는데에 있어서 꽤 큰 장애물이 되는 것을 알기에
한 번쯤 읽어본다면 도움이 될 것이라고 생각한다.
그러나 책의 모든 내용을 옮기는 데에는 시간이 걸리기 때문에,
내가 공감한 내용만 가볍게 추려보려고 한다.
의도를 분명히 밝혀라
-변수나 함수,클래스 이름을 지을 때에는 주석이 필요없을 정도로 의미를 명확하게 전달하는 이름이 좋다.
-의도가 드러나는 이름을 사용하면 코드의 이해와 변경이 쉬워진다.
그릇된 정보를 피하라
-일반적으로 자주 사용되는 단어와 겹치는 이름을 짓지마라
-읽는 사람으로 하여금 그릇된 해석을 하게 할 여지가 있다.
의미 있게 구분하라
-특정 단어만 추가한다고 하여 특정변수가 명확하게 구분되는 것은 아니다.
-ex)productInfo,productData
-의미를 명확하게 구분하는데 필요한 단어만 사용하라.
ex)name과 nameString은 크게 다르지 않다.
검색하기 쉬운 이름을 사용하라
-WORK_DAYS_PER_WEEK는 검색하기 쉬우나,
-days7은 7을 포함한 단어들도 함께 검색된다.
클래스 이름- 클래스 이름 및 객체 이름은 명사 또는 명사구가 적합하다
- 동사는 사용하지 않는다
메서드 이름- 메서드 이름은 동사나 동사구가 적합하다
- 접근자,변경자,조건자는 get,set,is를 붙인다.
- 인수를 설명하는 이름을 사용한다.
- ex)Complex()보다 Complex.FromRealNumber(23.0)이 좋다.
- 생성자 사용을 제한하려면 해당 생성자를 private로 선언한다.
한 개념에 한 단어를 사용하라- 같은 일을 수행하는 메서드를 클래스마다 다르게 지으면 혼란스럽다.
- 동일한 코드 기반에 controller와 manager,driver를 섞어쓰면 혼란스럽다.
- ex)동일한 기반의 코드를 가진 클래스가 각각 controller와 manager로 다르게 이름 지어진 경우,읽는 사람은 두 클래스가 완전히 다를 거라고 생각하게 될 여지가 있다.
인코딩을 피하라- 컴파일러 또는 IDE가 변수 타입을 알려주므로 이름에 타입을 인코딩할 필요가 없다.
- ex)phoneString
말장난을 하지마라
- 같은 단어를 두 가지 목적으로 사용하지 마라.
- ex)값 두 개를 더하는 메서드와 집합에 요소를 추가하는 경우를 둘 다 add로 명명하는 경우.
- 위의 경우는 insert 또는 append 등의 단어로 개념을 구분하는 게 맞다.
해법 영역에서 가져온 이름을 사용하라- 알고리즘 이름,패턴 이름,수학 용어 등을 사용해도 프로그래머가 이해하기 쉽다.
- visitor 패턴을 사용하는 경우 accountVisitor가 좋은 예.
의미 있는 맥락을 추가하라- 클래스,함수,이름 공간 등을 넣어 맥락을 부여해라.
- ex)state라는 변수가 주소의 일부라면, addrState가 더 나은 이름이다
불필요한 맥락을 없애라- 애플리케이션 이름을 접두어로 붙이는 것은 현명하지 못하다
- ex)GSTModifier는 검색 시 G로 시작하는 단어들을 함께 검색하므로,검색을 비효율적으로 만든다.
- 긴 이름보다는 짧은 이름이 좋다.
- ex)macAddress,cusomerAddress -> Address
'개발 팁' 카테고리의 다른 글
함수 (0) 2022.01.13 구름 IDE에서 Gradle build가 느릴 경우 해결 방법 (0) 2020.12.19 [아이패드로 코딩하기] 구름 IDE에서 Spring Boot 프로젝트 생성하고 공유하기 (0) 2020.12.19 [아이패드로 코딩하기] 구름 IDE 소개 (2) 2020.12.19 [개발 팁] Vim 에디터란 무엇인가? (0) 2020.11.17