Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
2장. 의미 있는 이름
#clean_code
2년 전
826


TIL (Today I Learned)

2022.02.20

오늘 읽은 범위

2장 의미 있는 이름

책에서 기억하고 싶은 내용을 써보세요.

  • 불용어를 추가한 이름 역시 아무런 정보도 제공하지 못한다.

    (p26)

Info나 Data는 a, an, the와 마찬가지로 의미가 불분명한 불용어다.

table이라는 단어도 마찬가지다. NameString이 Name보다 뭐가 나은가?

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

  • 접두어는 옛날에 작성한 구닥다리 코드라는 징표가 되버린다. (p30)

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

  • 생성자를 중복정의할 때는 정적 팩토리 메서드를 사용한다. 메서드는 인수를 설명하는 이름을 사용한다. (p32)

Complex fulcrumPoint = Complext.FromRealNumber(23.0);

위 코드가 아래 코드보다 좋다.

Complex fulcrumPoint = new Complex(23.0);

생성자 사용을 제한하려면 해당 생성자를 private로 선언한다.

  • 동일 코드 기반에 controller, manager, driver를 섞어 쓰면 혼란스럽다. (p33)

  • 모든 클래스 이름을 GSD로 시작하겠다는 생각은 전혀 바람직하지 못하다. IDE에서 G를 입력하고 자동 완성 키를 누르면 IDE는 모든 클래스를 열거한다. 현명하지 못하다. (p37)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 오늘도 뼈 맞는 내용이었다. 특히 발음하기 쉬운 이름을 사용하라는 부분에서 지금도 명확히 떠오르지 않는 그것이 생각났다. (내가 지은 이름은 아니었다.) 또, 그 숱하게 써댔던 Manager와 Info들이 생각났다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 새로운 페이지를 만들때마다 파일이름과 클래스명에 페이지명을 디폴트로 넣었다. 그럴땐 폴더로 구분해서 불필요한 맥락을 없애는 것이 맞는걸까?

  • 인터페이스는 만들때부터 IDE에서 I를 붙인 이름을 추천해주는데 왜 여기서는 붙이지 않는 편이 좋다는 걸까?

  • 해법 영역과 문제영역이 무슨 뜻일까?