2. 이름에 정보를 담아내라

2021. 11. 30. 18:57·Books/읽기 좋은 코드가 좋은 코드다
반응형

이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다.

<<변수의 이름은 작은 설명문이다!>>

 

1. 특정한 단어 고르기: 구체적인 단어를 통해 무의미한 단어 피하기

-> 유의어 색인집을 찾는 것, 동료에게 물어보는 것이 좋다.

 

2. tmp나 retval같은 보편적인 이름 피하기: 개체의 값이나 목적을 정확하게 설명한 이름을 사용

-> 변수의 이름은 변수의 목적이나 담고 있는 값을 설명해주어야 한다.

-> i,j,k라는 뻔한 루프 반복자보다 club_i, members_i, users_i 같은 의미를 담은 반복자가 낫다.

-> tmp, it, retval을 사용할 경우, 꼭 그렇게 하는 이유가 있어야 한다.

-> tmp: 대상이 용도가 오직 임시적으로 존재하는 것만일 때 사용한다.

 

3. 추상적인 이름보다는 구체적인 이름 사용: 구체적인 방식으로 이름을 묘사

-> DISALLOW_EVIL_CONSTRUCTOR(추상적) < DISALLOW_COPY_AND_ASSIGN(구체적)

-> 두 가지 동작(값, 기능)을 포괄하는 이름을 사용할 바에는, 개체 자체를 두 가지 동작으로 나눈다.

 

4. 추가적인 정보를 이름에 추가하기: 변수의 의미를 제대로 이해하는 것이 중요하다면 그 의미 정보를 변수 이름에 포함

-> 사용자가 반드시 알아야할 변수와 관련된 중요한 정보를 추가적인 '단어'로 만들 것

    (ex: id -> hex_id)

-> 변수가 측정치(시간의 양 or 바이트 수)를 담고 있다면, 변수명에 단위를 포함시키는 것이 좋다.

    ex: (delay -> delay_secs), (size -> size_mb), (limit -> max_kbps)

-> 위험한 요소나 확인해야할 내용이 있다면 위 방법을 마찬가지로 사용

    ex: (암호화가 필요한 password -> plaintext_password), (이스케이프 처리가 필요한 comment -> unescaped_comment), (utf-8로 변환된 html -> html_utf8)

 

5. 이름의 길이를 결정하기: 변수의 정확한 용도에 따라 판단

-> 좁은 범위(scope)에서는 짧은 이름이 괜찮다. 변수에 대한 정보를 한 눈에 볼 수 있기 때문.

-> 특정 프로젝트에 국한된 그들만의 약어/축약어는 Bad. 팀에 새로 합류한 사람이 의미하는 바를 이해할 수 있을지 고민한다.

-> 불필요한 단어는 제거한다.

    ex: (ConvertToString -> ToString), (DoServeLoop -> ServeLoop)

 

6. 이름 포맷팅을 통한 의미 전달: 밑줄과 대시를 이용한 포맷팅

-> JS의 경우, 생성자는 대문자+대문자(ex:DatePicker), 일반 함수는 소문자+대문자(pageHeight)

-> HTML/CSS의 경우 id는 밑줄('_'), class는 ('/')로 구분하면 편하다.

반응형
저작자표시 (새창열림)

'Books > 읽기 좋은 코드가 좋은 코드다' 카테고리의 다른 글

7. 읽기 쉽게 흐름제어 만들기  (0) 2021.12.03
6. 명확하고 간결한 주석 달기  (0) 2021.12.02
5. 주석에 담아야 하는 대상  (0) 2021.12.02
4. 미학  (0) 2021.12.02
3. 오해할 수 없는 이름들  (0) 2021.12.01
'Books/읽기 좋은 코드가 좋은 코드다' 카테고리의 다른 글
  • 6. 명확하고 간결한 주석 달기
  • 5. 주석에 담아야 하는 대상
  • 4. 미학
  • 3. 오해할 수 없는 이름들
개발하는 사막여우
개발하는 사막여우
개발개발 주저리주저리
    반응형
  • 개발하는 사막여우
    개발하는 사막여우
    개발하는 사막여우
  • 전체
    오늘
    어제
    • All (311)
      • Books (13)
        • 읽기 좋은 코드가 좋은 코드다 (13)
      • Study (6)
        • Blockchain (3)
        • Algorithm (3)
      • Baekjoon (36)
      • Programmers (166)
      • LeetCode (15)
      • Open Source (1)
        • Youtube Popout Player (1)
      • Language (32)
        • Python (9)
        • JS (8)
        • Java (5)
        • HTML (6)
        • CSS (4)
      • Library & Framework (15)
        • React.js (15)
      • IDE (2)
        • IntelliJ (2)
      • Airdrop (9)
      • Tistory (2)
      • etc.. (7)
        • Cozubi (6)
        • lol-chess (0)
  • 블로그 메뉴

    • Github
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    신규 코인 에어드랍
    클린 코드
    알고리즘문제풀이
    카카오 코딩테스트
    코딩테스트연습
    백준
    파이썬
    카카오 공채
    Python
    프로그래머스 위클리 챌린지
    카카오 알고리즘 문제
    2018 KAKAO BLIND RECRUITMENT
    클린 코드 작성법
    코인줍줍
    코주비
    읽기 좋은 코드가 좋은 코드다
    프로그래머스
    programmers
    Cozubi
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
개발하는 사막여우
2. 이름에 정보를 담아내라
상단으로

티스토리툴바