Community

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

← Go back
Assignment #03 2장 의미 있는 이름
#clean_code
2 years ago
1,262

오늘 TIL 3줄 요약

  • 좋은 이름을 짓는것은 시간이 걸리는 일이다.

  • 이름을 잘 지을수록 오히려 생산성이 늘어난다

  • 이름을 짓기위해서는 관례(규칙)을 정해두어야 한다.

TIL (Today I Learned) 날짜

2022.04.25 (월) 새벽

오늘 읽은 범위

2장. 의미 있는 이름

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

이름을 잘 짓는 몇가지 규칙

  1. 의도를 분명히 밝혀라
    좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 많다


    변수,함수,클래스 이름은 아래 질문에 대답을 할수 있어야 한다
    - 존재이유, 수행기능, 사용방법, 따로 주석이 필요하다면 의도를 분명하게 드러내지 못한것이다.

  2. 그릇된 정보를 피하라
    여러 그룹을 묶을때 List가 아니라면 List를 붙이지 않는다. Accounts, accountGroup같은 이름을 사용한다

  3. 의미있게 구분하라
    account, accountInfo 이 두가지의 차이를 알수 있을까?
    이런 의미들을 잘 구분해야한다. 명확한 관례를 만들거나 잘 나눠야한다.

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

  5. 검색하기 쉬운 이름을 사용하라
    상수도 숫자로 넣는게 아닌, 상수변수로 만들어 작성하면 검색하기 쉽다

  6. 인코딩을 피하라
    - 멤버 변수 접두어 : 헝가리타입같이 변수와 타입이 같이 붙는 네이밍을 쓰지 않는것이 좋다. 리팩토링시 변수 타입이 바뀌었다면 변수 이름도 바꿔줘야한다.
    - 인터페이스 클래스와 구현클래스: 인터페이스에 I를 앞에 붙이는것보다 명칭을 ShapeFactory라고 정하고 그 구현체를 ShapeFactoryImpl로 지정하는게 훨씬 좋다.
    접두사 I는 주의를 흐트리고 과도한 정보를 제공한다고 한다.

  7. 자신의 기억력을 자랑하지 마라
    나만 아는 이름으로 정하지마라!

  8. 클래스 이름
    명사나 명사구가 적당하다.

  9. 메서드 이름
    동사나 동사구가 적당하다

  10. 기발한 이름은 피해라

  11. 한 개념에 한 단어를 사용하라
    fetch, get 이던지, controller, manager 등 일관성있게 사용한다.

  12. 말장난을 하지마라
    add를 덧셈의 의미로 쓰다가 map에 추가하는데 add를 쓰는건 혼란을 만든다.

  13. 해법 영역에서 가져온 이름을 사용하라
    기술 개념에서는 기술 이름이 적합하다 (ex. JobQueue같은 프로그래머가 이해가능한 언어)

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

  15. 의미있는 맥락을 추가하라


    함수에 길게 작성하여 무슨 맥락으로 동작하는지 모르는것보단 클래스를 하나 만들어 작은 함수로 쪼개서 의미있는 맥락으로 바꿔주는 방법도 있다

  16. 불필요한 맥락을 없애라

좋은 이름은 설명 능력이 뛰어나고 문화적인 배경이 같아야한다.

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

이전 깨끗한 코드를 작성하기 위해 주의깊게 코드를 짜야한다고 했었는데 이 네이밍이 가장 첫번째로 주의깊게 짜야하는 것으로 보였다

개발할때는 의미가 전달되는 떠오르는 이름으로 작성을 하는편인데 더욱 고려할 사항이 많았음을 알았다.

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

오늘 읽은 다른사람의 TIL