Community

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

← Go back
[TIL] # Assignment 3, 22-02-21
#clean_code
2년 전
947


TIL (Today I Learned)

2022-02-21

오늘 읽은 범위

2장. 의미 있는 이름

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

  • 의도가 분명하게 이름을 지어라.

    • 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다.,

  • 그릇된 단서는 코드 의미를 흐린다.

    • 일관성이 떨어지는 표기법은 그릇된 정보다. ex) 유사한 용어 사용, List과 같은 명칭 사용

  • 연속된 숫자를 덧붙이거나 불용어를 추가하는 방식은 적절하지 못하다.

    • 불용어: Info, Data 등 (의미가 불분명함)

    • 불용어는 곧 중복이다.

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

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

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

    • 간단한 메서드에서 로컬 변수만 한 문자를 사용한다.

    • 문자 하나만 사용하는 변수 이름은 문제가 있다. 단, 루프 범위가 아주 작고 다른 이름과 충돌하지 않을 때만

    • 명료함이 최고다!

  • 유형이나 범위 정보까지 인코딩에 넣으면 그만큼 이름을 해독하기 어려워진다. ex) PhoneString

    • 자바 프로그래머는 변수 이름에 타입을 인코딩할 필요가 없다.

  • 클래스, 함수 그리고 인터페이스 이름은 접두어를 붙이지 않는 편이 좋다.

    • 클래스 이름: 명사, 명사구가 적합 / 동사는 사용하지 않는다.

    • 메서드 이름: 동사, 동사구가 적합

  • 재미난 이름보다 명료한 이름을 선택하라.

  • 메서드 이름은 독자적이고 일관적이어야 한다.

  • 한 단어를 두 가지 목적으로 사용하지 마라.

  • 이름은 보통 적절히 '프로그래머 용어' 를 사용해도 괜찮다.

    • 단, 적절한 내용이 없다면 문제 영역(Domain)에서 이름을 가져온다.

  • 모든 방법이 실패하면 마지막 수단으로 접두어를 붙여도 괜찮다.

  • 일반적으로는 짧은 이름이 긴 이름보다 좋다. 단, 의미가 분명한 경우에 한해

  • 좋은 이름을 선택하려면 설명 능력이 뛰어나야 하고 문화적인 배경이 같아야 한다.

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

  • 이번 챕터를 읽으며 항상 스스로 고전하던 문제의 영역과 닿아 있다고 생각하여 정독을 했다. 마치 수학과도 같은 기분이 들었다. 예시 코드, 친절한 설명이 있음에도 불구하고 머리로는 이해하지만 실제로 적용하기에는 어려울 수도 있겠다는 생각을 했다. 깔끔하고 좋은 이름은 정말 중요하다.

  • system 컨트롤러 명칭이 sysController, systemController를 보고 오늘 너무 놀라서 (...) 내일 출근해서 시간이 있다면 문제 해결 방법으로 이번 챕터 내용을 써먹어 볼 계획이다.

(+) 간단 요약

  1. 일반적으로는 짧은 이름이 긴 이름보다 좋으며, 의미가 얼마나 분명한지에 따라 긴 이름이 더 좋을 수도, 앞에 접두어가 붙는 편이 더 좋을 수 있다.

  2. 모든 사람이 읽기 쉬우며 의미가 헷갈리지 않는 이름을 짓도록 하자.

  3. 좋은 이름을 만드는 방법도 중요하고, 이를 구성원들과 전파하여 함께 사용하는 것 또한 중요하다.

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