본문 바로가기
RECORDS/CleanCode

클린코드 #1-2

by _wavy 2024. 3. 4.

1장 깨끗한 코드

책의 전체 내용을 소개하는 장. 이 책은 클린 코드와 작성법에 관한 것으로, 앞 장에서는 클린 코드의 방법론을 설명하고 뒷 장에서는 실제 코드 예시를 보여준다. 책에서 주지시키는 것처럼 클린 코드의 정의는 개발자들마다 다르며 여기서 설명하는 클린 코드의 정의와 작성법은 저자들의 주장임을 유념해야 할 것이다. 

 

1. 클린 코드란: 깨끗한 변수 이름/깨끗한 함수/깨끗한 클래스

2. 클린 코드의 효용: 비용 절감, 개발전문가의 길

 

깨끗한 게 뭔데? 

2장 의미 있는 이름

깨끗한 변수(/함수/클래스) 이름을 소개하는 장. 이는 의미가 분명한 변수명을 통해 코드 가독성을 높여서 협업의 효용을 높이는 데 중점을 두고 있다고 한다. 스스로도 변수명을 짓고 수정하는 작업에 너무 많은 시간과 에너지가 소요되는 경향이 있으므로 노하우를 배우고자 더 주의깊게 살펴보았다. (아래의 순서는 내가 이해하기 쉽도록 임의로 섞어서 그룹핑 해 둔 것이다.)

 

1. 의미를 분명히

  • 의도를 분명히 하라
  • 그릇된 정보를 피하라: l, o는 숫자 1, 0과 구분이 어려우므로 사용 지양
  • 의미 있게 구분하라: info, data, a(an), the의 사용 지양

2. 모두가 접근 가능한

  • 발음하기 쉬운 이름을 사용하라
  • 검색하기 쉬운 이름을 사용하라: 대문자 상수, enum 사용
  • 인코딩을 피하라
  • 자신의 기억력을 자랑하지 마라
  • 기발한 이름을 피하라
  • 말장난을 하지 마라

3. 통일성과 맥락

  • 한 개념에 한 단어를 사용하라
  • 의미 있는 맥락을 추가하라
  • 불필요한 맥락을 없애라
// 의도를 분명히 하라
getThem ➜ getFlaggedCells

// 그릇된 정보를 피하라
let l; ➜ let list;
let o; ➜ let orderedList;

// 의미 있게 구분하라
account, theAccount, accountInfo, accountData ➜ account

// 발음하기 쉬운 이름을 사용하라
genymdhms ➜ generateTimestamp

// 한 개념에 한 단어를 사용하라
DeviceManager, protocolController ➜ DeviceManager, protocolManager (manager로 통일)

// 의미 있는 맥락을 추가하라 + 불필요한 맥락을 없애라
GOOD: 
    1. 변수명 addrFirstName, addrLastName, addrState
    2. Address 클래스 생성
BAD: 클래스명 GSDAccountAddress, GSDMailingAddress, GSDCustomerAddress

 

4. 도메인 영역/비즈니스 영역 이름 분리

  • 해법 영역에서 가져온 이름을 사용하라
  • 문제 영역에서 가져온 이름을 사용하라

5. 클래스/메서드 이름

  • 클래스 이름: 명사(구) 사용
  • 메서드 이름: 동사(구) 사용, 접근자-get, 변경자-set, 조건자-is를 사용
// 클래스 이름: 명사(구) 사용
GOOD: Customer, WikiPage, Account, AddressParser
BAD: Manager, Processor, Data, Info

// 메서드 이름: 동사(구) 사용
GOOD: get, set, is
GOOD: 목적에 따라 add, insert, append

 


노개북 슬랙에 챌린지 시작 인사를 남겼다.ㅎ

'RECORDS > CleanCode' 카테고리의 다른 글

클린코드 #4  (0) 2024.03.06
클린코드 #3  (0) 2024.03.04
클린코드 #0  (0) 2024.03.01

댓글