티스토리 뷰

반응형
클린코드 2장의 내용을 정리하겠다.

2장에서는 '이름을 잘 짓는 간단한 규칙'을 조언했다!

 

의도를 분명히 밝혀라.

의도가 분명한 이름이 정말로 중요하다.

변수(혹은 함수나 클래스)의 존재 이유는?

수행 기능은? 

사용 방법은? 

따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다.

 

 

그릇된 정보를 피하라.

여러 계정을 그룹으로 묶을 때, 실제 List가 아니라면,

accountList라 명명하지 않는다.

프로그래머에게 List라는 단어는 특수하다!

계정을 담는 컨테이너가 실제 list가 아니라면

프로그래머에게 그릇된 정보를 제공하는 셈이다!

 

유사한 개념은 유사한 표기법을 사용한다.

일관성이 떨어지는 표기법은 그릇된 정보다.

 

의미 있게 구분하라.

컴파일러나 인터프리터만 통과하려는 생각으로

코드를 구현하는 프로그래머는 스스로 문제를 일으킨다.

 

연속적인 숫자를 덧붙인 이름(a1, a2, ..., aN)은

의도적인 이름과 정반대다.

(솔직히 이 부분 읽으면서 완전 뜨끔;;😂)

(평소에 백준 풀때 중복되는 변수는 fruit1,fruit2, ...

이런식으로 변수 지음)

 

불용어는 중복이다.

변수 이름에 variable이라는 단어는 단연코 금물이다!

표에 table 또한 마찬가지!

 

✔ 변수명을 신경써서 짓자.

 

 

발음하기 쉬운 이름을 사용하라.

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

e라는 문자는 변수 이름으로 적합하지 못하다.

검색하기 어렵기 때문에!!

 

e는 영어에서 가장 많이 쓰이는 문자다.

 

이름 길이는 범위 크기에 비례해야 한다.

 

 

 

인코딩을 피하라.

문제 해결에 집중하는 개발자에게 인코딩은

불필요한 정신적 부담이다.

 

자신의 기억력을 자랑하지 마라.

문자 하나만 사용하는 변수 이름은 문제가 있다.

❌ 특히, l은 절대 안된다!

(문자 'l'과  숫자 '1'은 구분이 어렵기 때문에)

 

📢 클래스 이름 

클래스 이름과 객체 이름은 명사나 명사구가 적합하다.

동사는 사용하지 않는다.

 

📢 메서드 이름

메서드 이름은 동사나 동사구가 적합하다.

접근자(Accessor),설정자(Mutator),조건자(Predicate)는

자바 표준에 따라 값 앞에 get,set,is를 붙인다.

 

생성자를 중복 정의할 때는 정적 팩토리 메서드를 사용한다.

 

 

 기발한 이름은 피하라.


재미난 이름보단 명료한 이름을 선택하라.

의도를 분명하고 솔직하게 표현하라.

 

한 개념에 한 단어를 사용하라.

메서드 이름은 독자적이고 일관적이어야 한다.

 

 

말장난을 하지 마라.

프로그래머는 코드를 최대한 이해하기 쉽게 짜야 한다.

집중적인 탐구가 필요한 코드가 아니라 대충 훑어봐도 이해할 코드 작성이 목표다.

 

의미를 해독할 책임이 독자에게 있는 논문 모델이 아니라 의도를 밝힐 책임이

저자에게 있는 잡지 모델이 바람직하다.

 

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

적절한 '프로그래머 용어'가 없다면 문제 영역에서 이름을 가져온다.

 

 

불필요한 맥락을 없애라.

일반적으로 짧은 이름이 긴 이름보다 좋다.

단, 의미가 분명한 경우에 한해서다.

이름에 불필요한 맥락을 추가하지 않도록 주의해라!

 

마치면서

다른 사람이 짠 코드를 손본다면

리팩터링 도구를 사용해 문제 해결 목적으로 이름을 개선하라.

 

단기적인 효과는 물론 장기적인 이익도 보장한다!

 

 


2장에서는 변수명 짓는 방법과

리팩토링에 대해 설명했다.

 

2장을 읽으면서

작동하는 코드를 짜는 것도 중요하지만

책의 소제목인

'애자일 소프트웨어의 장인 정인'이라는

이름에 걸맞게 클린한 코드를 짜기 위해서

기본적으로 변수명, 클래스명, 함수명을

어떻게 짜야 하는지 알게되었다.

 

앞으로 나도 코드를 설계하면서

꼭 참고해야겠다고 다짐했다.

 

그럼 3장에서 다시 보자.

다들 클린한 코드를 짜기 바란다!

😊 

 

반응형