(클린코드) 2장. 의미 있는 이름

Posted by Eun JongHyeok on January 18, 2025

오늘 TIL 3줄 요약

  • 의미 있는 이름 사용하자.
  • 불필요한 정보를 포함하지 말자.
  • 이제보니 안좋은 이름을 생각보다 많이 사용했던거 같다.

TIL (Today I Learned) 날짜

  • 2025.01.19 - 2025.01.20

오늘 읽은 범위

  • 2장. 의미 있는 이름

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

의도 밝히기

  • int x 같은 의미를 알 수 없는 코드를 사용하지 않기

그릇된 정보를 피하기

  • 이미 널리 알려진 단어를 다른 의미로 사용하지 않기
  • 유사한 개념에는 유사한 표기법을 사용하기

의미 있게 구분하기

  • 연속적인 숫자를 덧붙인 이름(a1,a2..)은 사용하지 않기
  • 불용어를 추가한 이름은 아무런 정보를 주지 못한다. 불용어는 중복이다.
    • 예시 Product, ProductInfo, ProductData

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

  • 이상한 단어를 만들지 않기.
  • 발음하기 쉬워야 지적인 대화를 가능하게 해준다.

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

  • 문자 하나를 사용하는 이름과 상수는 검색하기 어렵다.
    • 숫자 같은 경우 상수 변수로 만들기

인코딩 피하기

  • 변수명에 인코딩 정보를 최대한 빼기.
    • 타입을 나타내는 접두어나 접미사
    • 멥버 변수를 나타네는 m_
    • 인터페이스 클래스의 I

자신의 기억력을 자랑하지 않기

  • 전문가는 남들이 이해하는 코드를 내놓는다.

클래스 이름

  • 명사나 명사구를 사용하기.
  • Manager, Processor, Data, Info 등의 단어와 동사는 사용하지 않기.

메서드 이름

  • 동사나 동사구를 사용하기.
  • 접근자, 변경자, 조건자는 get, set, is를 붙이기.
  • 생성자를 override할때는 정적 팩토리 메서드를 사용하기.
    • Movie movie = Movie.FromJson(json)

기발한 이름 피하기

  • 특정 문화에서 사용하는 표현은 피하기. 해당 문화를 모르면 이해하기 힘들다.

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

  • 추상적인 개념 하나에 단어 하나를 선택해 이를 고수하기.
    • 예시 get, fetch, retrive 같은 의미를 여러 메서드에서 사용하면 기억하기 어렵다.
    • 클래스에서도 마찬가지로 controller, manager, driver를 섞어 쓰면 혼란스럽다.

말장난 금지

  • 한단어를 두 가지 목적으로 사용하지 않기
    • 한 개념에 한 단어를 사용하기 라도 일관성을 고려해 다른 맥락이면 다른 이름을 사용하기

해법 영역에서 가져온 이름을 사용하기

  • 문제 영역이 아니더라도 전산 용어, 알고리즘 이름, 패턴 이름, 수학 용어는 사용해도 좋다.

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

  • 해법 영역에서 적절한 이름이 없다면 문제 영역에서 가져온다.
  • 해당 코드가 문제 영역과 관련이 깊다면 문제 영역에서 이름을 가져와야 한다.

의미 있는 맥락을 추가하기

  • 같은 맥락을 공유하기 위해 접두사를 붙일 수 있다. 하지만 클래스로 만드는 것도 방법이 된다.

불필요한 맥락을 없애기

  • 일반적으로 짧은 이름보다 긴 이름이 좋다. 단 의미가 분명해야한다.
  • 의미에 불필요한 맥락을 추가하지 않도록 주의해야한다.

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

  • 개인적으로 이름 짓기가 힘든 이유 중 하나로 영어 어휘력도 한몫하고 있는거 같습니다.
  • 저는 이름을 신경쓴다 생각했는데 불용어가 포함된 클래스를 많이 만들었던거 같습니다.

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

  • 해법 영역
    • 프로그래머와 개발자들이 일반적으로 사용하는 기술적인 용어와 개념등을 말합니다. 예를 들어, “Queue”, “Stack”, “JobQueue” 등이 해법 영역에서 가져온 이름들입니다.
  • 문제 영역
    • 소프트웨어가 해결하고자 하는 실제 비즈니스나 응용 분야와 관련된 용어와 개념등을 말합니다. 예를 들어 우편 시스템을 개발한다면 PostNumber, Address 등이 있습니다.

오늘 읽은 다른사람의 TIL

슬랙 입성

image2


nomadcoder
study
노마드코더
노개북
개발자북클럽

← Previous Post Next Post