클린 코드는 협업을 하는 개발자들에게 있어서 중요한 요소가 아닌가 싶습니다. 그래서 저는 앞으로 클린 코드를 읽고 공부해보려고 정리하게 되었습니다.
클린 코드의 저자 로버트 C 마틴은 오브젝트 멘토사의 창립자이자 대표인데 코드를 작성하는 데 있어서 필요한 규칙과 연칙에 대해 설명했습니다. 여러 가지 측면에서 클린 코드를 설명하였는데 1장은 클린 코드가 무엇인지 나쁜 코드가 무엇인지 설명하였고, 2장은 의미 있는 이름에 대해 설명하였습니다.
#lucky_sonnie 님이 정리해주셨습니다
개발을 하기 위해선 클래스, 메소드, 필드명 등을 의미 있게 정해야 합니다.
- 의도를 분명히 밝혀라.
- 그릇된 정보를 피하라.
예시) XYZControllerForEfficientHandlingOfStrings
XYZControllerForEfficientStorageOfStrings
두 메소드의 이름을 검색해서 찾기도 어렵고, 한눈에 두 메서드가 다르다고 알아차리기도 어렵습니다.
그렇기 때문에 이런식으로 메서드의 이름을 정하는 것을 피해야 합니다.
O, 0, L, 1 등의 문자들은 피할 것
- 의미 있게 구분하라.
기존에 product 란 클래스가 있는 경우,
다른 클래스를 productInfo, productData 라 부른다면 개념을 구분하지 않은 채 이름만 달리 한 경우이다. productBarcode , productNutrition 란 식으로 바꿔주자
- 발음하기 쉬운 이름을 사용하라
genymdhms (generate date, year, month, day, hour, minute, second)
- 검색하기 쉬운 단어를 선택하라
MAX_CLASSES_PER_STUDENT 은 grep으로 찾기 쉽지만 숫자 7은 까다롭다. 7이 들어가는 파일 이름이나 수식이 모두 검색되기 때문이다. 검색은 되지만 7을 사용한 의도가 다른 경우도 있다. (serializable 할 때 )
- 인코딩을 피해라
굳이 부담을 더하지 않아도 이름에 인코딩할 정보는 아주 많기에 유형이나 범위정보까지 인코딩에 넣으면 그만큼 이름을 해독하기 어려워진다.
(PhoneNumber phoneString
String m_dsc -> String description
)
- 클래스 이름
좋은 예 :Customer, WikiPage, Account, AddressParser
나쁜 예: Manager, Processor, Data, Info
- 한 개념에 한 단어를 사용해라
똑같은 메서드를 클래스마다 fetch, retrieve, get 으로 제각각으로 부르면 혼란스럽다. 어느 클래스에서 어느 이름을 썼는지 기억하기 어렵다.
동일 코드 기반에 controller, manager, driver를 섞어 쓰면 혼란스럽다.
(DeviceManager, ProtocolController )
- 의미 있는 맥락을 사용해라.
firstName, lastName, street, houseNumber, city, state..
state가 주소 일부라는 사실을 금방 알아채기 어렵기 때문에
addrFirstName, addrLastName, addrState 라 쓰면 맥락이 좀 더 분명해짐
'독서' 카테고리의 다른 글
클린 코드 7~8장 (0) | 2020.12.22 |
---|---|
클린코드#3 함수 (0) | 2020.06.24 |