Community

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

← Go back
[TIL / Clean Code] 2장. 의미 있는 이름
#clean_code
2년 전
541


TIL (Today I Learned)

2022.02.20

오늘 읽은 범위

2장. 의미 있는 이름

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

  • 의도를 분명히 밝혀라

    • 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다.(22p)

  • 그릇된 정보를 피하라

    • 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안 된다.(24p)

    • 서로 흡사한 이름을 사용하지 않도록 주의한다. (24p)

    • 일관성이 떨어지는 표기법은 그릇된 정보다.(25p)

  • 의미 있게 구분하라

    • 이름이 달라야 한다면 의미도 달라져야 한다.(26p)

    • 읽는 사람이 차이를 알도록 이름을 지어라.(27p)

  • 클래스 이름과 객체 이름은 명사나 명사구가 적합하다. 동사는 사용하지 않는다.(32p)

  • 메서드 이름은 동사나 동사구가 적합하다.(32p)

  • 기발한 이름은 피하라

    • 의도를 분명하고 솔직하게 표현하라.(33p)

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

    • 똑같은 메서드를 클래스마다 fetch, retrieve, get으로 제각각 부르면 혼란스럽다. 어느 클래스에서 어느 이름을 썼는지 기억하기 어렵다.(33p)

    • 메서드의 이름은 독자적이고 일관적이어야 한다.(33p)

  • 말장난을 하지 마라

    • 한 단어를 두 가지 목적으로 사용하지 마라. 다른 개념에 같은 단어를 사용한다면 그것은 말장난에 불과하다.(34p)

    • 일관성을 고려하여 맥락은 다르지만 기존의 메서드명과 동일한 이름을 사용한다면, 이는 말장난이다.

      • ex) add

        (기존)두 값을 더하거나 이어서 새로운 값을 만든다. (신규 메서드)집합에 값 하나를 추가한다. 신규메서드는 insert나 append라는 이름이 적당하다.(34p)

  • 의미 있는 맥락을 추가하라

  • 불필요한 맥락을 없애라

  • 일반적으로는 짧은 이름이 긴 이름보다 좋다. 단, 의미가 분명한 경우에 한해서다. 이름에 불필요한 맥락을 추가하지 않도록 주의한다.(37p)

  • 우리는 문장이나 문단처럼 읽히는 코드 아니면 적어도 표나 자료 구조처럼 읽히는 코드를 짜는 데만 집중해야 마땅하다.(38p)

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

  • 2장을 읽은 후의 내가 과거의 나를 돌이켜본다면, 개발을 진행하며 함수 등의 이름을 다른 프로그래머가 읽었을 때 또는 나중에 봤을 때 분명한 의미 파악이 어려울 수 있는 이름을 자주 지었던 기억이 떠오르며 반성이 되었다.

  • 이름은 최대한 의미 전달이 잘 되도록 지으며, 코드가 잘 읽히고 이해될 수 있도록 작성할 수 있어야 한다는 메세지를 잘 전달 받은 듯 하며, 항상 이 메세지를 잘 기억하고 있어야겠다고 느꼈다.

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