Community

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

← Go back

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

#book_club
1년 전
509

오늘 TIL 3줄 요약

  • 명료함

  • 일관성

  • 지속적인 개선의 노력

TIL (Today I Learned) 날짜

  • 2024.5.5 일요일

오늘 읽은 범위

2장 의미 있는 이름

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

  • 이름을 잘 지으면 여러모로 편하다(p.22)

  • 의도를 분명히 밝혀라(p.22)

    • 정말로 중요하다.

    • 좋은 이름 선택에는 시간이 걸리지만, 좋은 이름으로 절약하는 시간이 더 크다.

    • 나를 포함, 코드를 읽는 사람이 좀 더 행복해진다.

    • 코드 맥락이 코드 자체에 명시적으로 드러나야 한다.

      • 이름을 잘 짓는것 만으로 코드에서 맥락을 보여주는데 도움이 될 수 있다.

  • 그릇된 정보를 피하라(p.24)

    • 유사한 개념은 유사한 표기법을 사용한다.

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

  • 의미 있게 구분하라(p.25)

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

  • 발음하기 쉬운 이름을 사용하라(p.27)

  • 검색하기 쉬운 이름을 사용하라(p.28)

    • 문자 하나를 사용하는 이름과 상수는 텍스트 코드에서 쉽게 눈에 띄지 않는다는 문제점이 있다.

  • 인코딩을 피하라(p.29)

    • 불필요한 접두어 사용하지 마라.

    • IShapeFactory -> ShapeFactoryImpl

  • 자신의 기억력을 자랑하지 마라(p.31)

    • 제3자가 코드를 읽으면서 변수명을 자신이 아는 이름으로 변환해야 한다면 그 변수 이름은 바람직하지 못하다. 일반적으로 문제영역(도메인), 해법영역(기술부분)에서 사용하지 않는 이름을 선택했기 때문에 생기는 문제.

    • 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다.

  • 클래스 이름(p.32)

    • 명사, 명사구

  • 메서드 이름(p.32)

    • 동사 ,동사구

  • 기발한 이름을 피하라(p.32)

    • 특정 문화에서 사용하는 농담은 피하는게 좋다.

  • 한 개념에 한 단어를 사용하라(p.33)

    • 추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다. fetch, retirieve, get을 혼용해서 사용하면 혼란스럽다.

    • 일관성 있는 어휘는 코드를 사용할 피로그래머가 반갑게 여길 선물.

  • 말장난을 하지 마라(p.34)

    • 같은 맥락이 아닌데, 일관성을 고려해 같은 단어를 사용하는 경우가 있다.

      • ... 맥락이 다른데 같은 단어를 사용할 경우, 옳은 선택이 아님

    • 프로그래머는 최대한 이해하기 쉽게 짜야 한다. ... 대충 훍어봐도 이해할 코드 작성이 목표다.

  • 해법 영역에서 가져온 이름을 사용하라(p.34)

    • 코드 읽는 사람도 프로그래머다. 기술 영역에서 사용하는 용어 사용은 괜찮다.

  • 문제 영역에서 가져온 이름을 사용하라(p.34)

    • 적절한 프로그래머 용어가 없다면 '도메인' 영역에서 이름을 가져온다.

    • 기술영역/도메인을 구분할 줄 알아야 한다.

  • 의미 있는 맥락을 추가하라(p.35)

    • 변수명 만으로 파악하기 어렵다면, 변수명에 맥락을 추가하는게 좋다

      • state -> addrState: 상태가 아닌, 주소의 주 라는 뜻

    • 맥락을 묶어주는 클래서를 생성하면 더 좋다. 변수가 조 ㅁ더 ㅋ믄 개념에 속한다는 사실이 컴파일러에도 분명해진다.

  • 불필요한 맥락을 없애라(p.37)

  • 좋은 이름을 선택하려면, 설명 능력이 뛰어나고 문화적인 배경이 같아야 한다. 좋은 이름의 선택은 교육 문제다.(p.38)

  • 여느 코드 개선 노력과 마찬가지로 이름 역시 나름대로 바꿨다가는 누군가 질책하지도 모른다. 그렇다고 코드를 개선하려는 노력을 중단해서는 안 된다.(p.38)

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

  • 코드는 한번 작성하고 끝나는게 아니다. 의미 있는 이름은 다시 코드를 살펴보는 시점에 큰 도움이 될것이다!

  • 의미 있는 이름은 코드를 보는 사람을 배려하는 방법이다. 보는 사람에는 타인 뿐만 아니라, 나도 포함이다. 결국 미래의 나를 배려하는 방법!

  • 1장부터 지속적으로 느껴지는 뉘앙스는, 최초 개발 + 개발 이후 유지보수하는 상황까지 고려해서 작성하는걸 강조하는듯한 느낌.

  • 지금 운영업무를 겸하고 있는 상황인데, 내가 개발한 코드가 많다보니 '이게 뭐지'하는 부분이 있다. 조금 더 명확했으면 이해하기 쉬었을까 하는 생각이 든다.

  • 동시에 나는 다음 사람을 배려하고 있나하는 생각이 드는데...! 반성좀 해야겠다. 실천해야지!

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

  • 헝가리식 표기법

    • 프로그래밍 언어에서 변수 및 함수의 인자 이름 앞에 데이터 타입을 명시하는 코딩 규칙이다.

이 책을 왜 읽으시나요?