Item 68. Naming Convention

일반적으둜 ν†΅μš©λ˜λŠ” λͺ…λͺ… κ·œμΉ™μ„ λ”°λ₯΄λΌ

μžλ°” ν”Œλž«νΌμ˜ λͺ…λͺ… κ·œμΉ™μ€ 잘 μ •λ¦½λ˜μ–΄ μžˆμ–΄ 일관성 있고 읽기 μ‰¬μš΄ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 있게 도와쀀닀. νŒ¨ν‚€μ§€/클래슀/μΈν„°νŽ˜μ΄μŠ€/λ©”μ„œλ“œ/ν•„λ“œ/νƒ€μž… λ³€μˆ˜/μƒμˆ˜ λ“±μ˜ 이름을 지을 λ•ŒλŠ” 일반적으둜 ν†΅μš©λ˜λŠ” λͺ…λͺ… κ·œμΉ™λ“€μ΄ μ‘΄μž¬ν•˜λ©°, 이λ₯Ό λ”°λ₯΄λŠ” 것이 μ’‹λ‹€.

철자 κ·œμΉ™

철자 κ·œμΉ™μ€ 비ꡐ적 ν†΅μΌλœ 편이며, λŒ€λΆ€λΆ„μ˜ κ²½μš°μ—λŠ” ν‘œμ€€ 철자λ₯Ό λ”°λ₯΄λŠ” 것이 μ’‹λ‹€.

  • νŒ¨ν‚€μ§€: 각 μš”μ†Œλ₯Ό .으둜 κ΅¬λΆ„ν•˜μ—¬ κ³„μΈ΅μ μœΌλ‘œ ꡬ성

    • νŒ¨ν‚€μ§€ 이름은 λͺ¨λ‘ μ†Œλ¬Έμžλ‘œ μž‘μ„±

    • 각 μš”μ†ŒλŠ” 일반적으둜 8자 μ΄ν•˜μ˜ 짧은 λ‹¨μ–΄λ‘œ ꡬ성(κΈ΄ κ²½μš°μ—”, μ•½μ–΄λ‚˜ 각 λ‹¨μ–΄μ˜ 첫 κΈ€μžλ§Œ λ”°μ„œ μ‚¬μš©)

    • λ§Žμ€ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” κ²½μš°μ—” 계측을 λ‚˜λˆ  λ§Žμ€ μš”μ†Œλ‘œ ꡬ성(java.util.concurrent.atomic λ“±)

    • 쑰직 λ°”κΉ₯μ—μ„œλ„ μ‚¬μš©λ  νŒ¨ν‚€μ§€μΈ 경우 일반적으둜 νšŒμ‚¬ 도메인 이름을 μ—­μˆœμœΌλ‘œ μ‚¬μš©

      • com.google, com.google.common, com.google.common.collect λ“±

  • 클래슀/μΈν„°νŽ˜μ΄μŠ€: ν•˜λ‚˜ μ΄μƒμ˜ λ‹¨μ–΄λ‘œ 이뀄지며, 파슀칼 μΌ€μ΄μŠ€λ₯Ό λ”°λ₯Έλ‹€.

    • μ—¬λŸ¬ λ‹¨μ–΄μ˜ 첫 κΈ€μžλ§Œ λ”΄ μ•½μžλ‚˜, 널리 ν†΅μš©λ˜λŠ” μ€„μž„λ§(max, min λ“±)을 μ œμ™Έν•˜κ³ λŠ” 쀄여 쓰지 μ•ŠμŒ

    • μ•½μ–΄μ˜ 경우 첫 κΈ€μžλ§Œ λŒ€λ¬ΈμžμΈ κ²½μš°κ°€ 많음(HttpUrl, XmlHttpRequest λ“±)

  • λ©”μ„œλ“œ/ν•„λ“œ: 첫 κΈ€μžλ₯Ό μ†Œλ¬Έμžλ‘œ μ“΄λ‹€λŠ” 점(캐멀 μΌ€μ΄μŠ€)만 μ œμ™Έν•˜λ©΄ 클래슀/μΈν„°νŽ˜μ΄μŠ€μ™€ 동일

    • μƒμˆ˜(static final) ν•„λ“œ: μ˜ˆμ™Έλ‘œ μƒμˆ˜ ν•„λ“œλŠ” λͺ¨λ‘ λŒ€λ¬Έμžλ‘œ μž‘μ„±ν•˜λ©°, μ—¬λŸ¬ λ‹¨μ–΄μ˜ 쑰합인 경우 _둜 ꡬ뢄(MIN_VALUE, NEGATIVE_INFINITY λ“±)

  • μ§€μ—­λ³€μˆ˜: ν•„λ“œμ™€ λΉ„μŠ·ν•œ λͺ…λͺ… κ·œμΉ™μ΄ μ μš©λ˜μ§€λ§Œ, μ•½μ–΄λ₯Ό μ‚¬μš©ν•˜λŠ” κ²½μš°κ°€ 많음(i, x, y λ“±)

  • νƒ€μž… λ§€κ°œλ³€μˆ˜: 보톡 ν•œ κΈ€μžλ‘œ ν‘œν˜„(T, E, K, V λ“±)

    • T: μž„μ˜μ˜ νƒ€μž…

    • E: μ»¬λ ‰μ…˜μ˜ μš”μ†Œ νƒ€μž…

    • K/V: 맡의 ν‚€/κ°’ νƒ€μž…

    • X: μ˜ˆμ™Έ νƒ€μž…

    • R: λ°˜ν™˜ νƒ€μž…

    • κ·Έ μ™Έ: T, U, V λ“±μ˜ μ—°μ†λœ μ•ŒνŒŒλ²³ ν˜Ήμ€ T1, T2, T3 λ“±μ˜ 숫자λ₯Ό λΆ™μ—¬μ„œ ν‘œν˜„

문법 κ·œμΉ™

문법 κ·œμΉ™μ€ 철자 κ·œμΉ™κ³Ό 달리 더 μœ μ—°ν•˜κ³  λ…Όλž€μ΄ λ§Žμ•„, κ·œμΉ™μ΄ λ”°λ‘œ μ—†λŠ” κ²½μš°κ°€ λ§Žλ‹€.

μ’…λ₯˜
μ„€λͺ…
넀이밍 μ˜ˆμ‹œ

객체λ₯Ό 생성할 수 μžˆλŠ” 클래슀

λ‹¨μˆ˜ λͺ…μ‚¬λ‚˜ λͺ…사ꡬ μ‚¬μš©

Thread, PriorityQueue

객체λ₯Ό 생성할 수 μ—†λŠ” 클래슀

λ³΅μˆ˜ν˜• λͺ…μ‚¬λ‚˜ λͺ…사ꡬ μ‚¬μš©

Collections, Collectors

μΈν„°νŽ˜μ΄μŠ€ 이름

ν΄λž˜μŠ€μ™€ λ˜‘κ°™μ΄ μ§“κ±°λ‚˜ -able, -ible, -er λ“±μ˜ ν˜•μš©μ‚¬λ‘œ λλ‚˜λŠ” 이름 μ‚¬μš©

Runnable, Iterable, Accessible

μ• λ„ˆν…Œμ΄μ…˜

지배적인 κ·œμΉ™μ΄ 없이 λŒ€λΆ€λΆ„μ€ λͺ…사, 동사, μ „μΉ˜μ‚¬, ν˜•μš©μ‚¬ 등을 μ‘°ν•©ν•˜μ—¬ μ‚¬μš©

BindingAnnotation, Inject, ImplementedBy

λ™μž‘μ„ μˆ˜ν–‰ν•˜λŠ” λ©”μ„œλ“œ

(λͺ©μ μ–΄λ₯Ό ν¬ν•¨ν•œ) 동사ꡬ μ‚¬μš©

append, drawImage

boolean을 λ°˜ν™˜ν•˜λŠ” λ©”μ„œλ“œ

is, has λ“±μ˜ 접두어 μ‚¬μš©

isEmpty, isDigit, isEnabled

객체의 속성을 λ°˜ν™˜ν•˜λŠ” λ©”μ„œλ“œ

λͺ…사, λͺ…사ꡬ ν˜Ήμ€ get 접두어 μ‚¬μš©

size, hashCode, getTime

객체의 νƒ€μž…μ„ λ°”κΏ”μ„œ λ‹€λ₯Έ νƒ€μž…μ˜ 또 λ‹€λ₯Έ 객체λ₯Ό λ°˜ν™˜ν•˜λŠ” λ©”μ„œλ“œ

toType ν˜•νƒœ μ‚¬μš©

toArray, toString

객체의 λ‚΄μš©μ„ λ‹€λ₯Έ 뷰둜 λ³΄μ—¬μ£ΌλŠ” λ©”μ„œλ“œ

asType ν˜•νƒœ μ‚¬μš©

asList, asMap

객체의 값을 κΈ°λ³Έ νƒ€μž… κ°’μœΌλ‘œ λ°˜ν™˜ν•˜λŠ” λ©”μ„œλ“œ

typeValue ν˜•νƒœ μ‚¬μš©

intValue, doubleValue

Last updated

Was this helpful?