Clean Code - ch.2

1 minute read

Intro

이전에는 클린코드란 무엇인지에 대해 알아봤다.

이번 장에서는 의미 있는 이름이란 무엇인지에 대해서 알아본다.


의도를 분명히 밝히는 네이밍

좋은 이름으로 절약하는 시간이 있다.

변수의 존재 이유/수행 기능/사용 방법을 드러내는 네이밍이 좋다.

따로 주석이 있다면 의도를 분명히 드러내지 못하는 네이밍이다.

의도가 드러나는 이름은 코드 이해와 변경이 쉬워진다.

그릇된 정보를 피하라

코드에 그릇된 단서를 남기지 않는다.

그릇된 단서는 코드의 의미를 흐린다.

예를 들어, 여러 계정을 그룹으로 묶는데 List로 구성되어 있지 않는데 accountList로 네이밍한다던지…

의미 있게 구분하라

컴파일러만 통과하려는 생각으로 코드를 구현하지 마라.

변수의 이름으로 a1, a2, a3… 같은 경우도 여기에 해당한다.

이름이 달라야 한다면 의미도 다르다는 뜻이다.

a1, a2… 같은 경우는 그릇된 정보를 제공하는 것도 아니고 아무런 정보도 제공하지 못하는 이름이다.

클래스 이름

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

Manager, Processor, Data, Info 등과 같은 단어는 피하고 동사는 사용하지 않는다.

메서드 이름

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

get/set/is를 붙이기도 한다.

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

fetch와 get을 예로 들 수 있다.

API 통신으로 무언가를 가져올 때 fetch나 get을 흔히 쓰는데 이를 같은 기능이라면 하나의 단어로 통일할 필요가 있다.


Outro

네이밍에 대해서 알아봤다.

역시 네이밍이 제일 어렵다.

영어에서 오는 미묘한 뉘앙스 차이도 있고, 복잡해지면 어떤 이름을 가지고 가는게 역할을 확실히 할 수 있을지 항상 고민스럽다.

어느정도 일정한 나만의 룰을 가지고 있으면 좋을거 같은데 아직은 이를 갖기 어려운거 같다.

Leave a comment