Tips for Naming variables

Intro

<μ½”λ”© 제 1μž₯ 1절. λͺ¨λ“  것은 μ΄λ¦„μœΌλ‘œλΆ€ν„°>

e.g.
<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

μ•ˆλ“œλ‘œμ΄λ“œ 앱을 κ°œλ°œν•˜λŠ” 쀑 λ‚˜λŠ” μœ„μ™€ 같은 μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ„œ κ³΅μœ ν–ˆλ‹€. λ¬Έμ œκ°€ μ—†μ–΄ λ³΄μ΄κ² μ§€λ§Œ λ¬Έμ œκ°€ μžˆλ‹€! μ •ν™•νžˆλŠ” listView1κ³Ό 같은 λ³€μˆ˜λͺ…에 λŒ€ν•œ λ¬Έμ œλ‹€.

  • μ½”λ“œλ₯Ό μ‹€ν–‰ν•  λ•Œ λ¬Έμ œκ°€ 생겨 μˆ˜μ •ν•˜κ±°λ‚˜ 디버깅할 λ•Œ μ •ν™•νžˆ ν•  수 μžˆμ„κΉŒ?
  • ν˜Όμžκ°€ μ•„λ‹Œ λ‹€λ₯Έ μ‚¬λžŒλ“€κ³Ό ν˜‘μ—…μ„ ν•  경우, 이 λ³€μˆ˜μ˜ 이름을 μ‰½κ²Œ νŒŒμ•…ν•  수 μžˆμ„κΉŒ?
  • λ³€μˆ˜ 이름을 보고 μ •ν™•νžˆ κ·Έ μ“°μž„μ„ μ•Œ 수 μ—†μ–΄, 전체 μ½”λ“œμ˜ 흐름을 νŒŒμ•…ν•΄μ•Όν•œλ‹€λŠ” 문제λ₯Ό μ•ΌκΈ°ν•œλ‹€. (μ‹œκ°„λ„ 많이 걸리고!)
  • (+ 본인이 λ‚˜μ€‘μ— μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³Ό λ•Œλ„ 기얡이 λ‚˜μ§€ μ•ŠμœΌλ©΄ λ§Žμ€ μ‹œκ°„μ΄ μ†Œμš”λœλ‹€!!)

κ·Έλž˜μ„œ λ³€μˆ˜λͺ…을 μ •ν•˜λŠ” 방법에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ €κ³  ν•œλ‹€.

Tips for naming variables

Clear Name

이름은 λͺ…ν™•ν•΄μ•Ό ν•œλ‹€. 이 λ³€μˆ˜κ°€ μ–΄λ–€ 역할을 ν•˜λŠ” 것인지 λͺ…ν™•ν•˜κ²Œ ν‘œν˜„μ„ ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

e.g.
public class ExpandableDataMaker {
    public HashMap<String, List<String>> getData() {
        HashMap<String, List<String>> expandableListDetail = new HashMap<>();
           // ...skip...
        return expandableListDetail;
    }
}

ExpandableDataMakerλΌλŠ” classλ₯Ό 생성해, νŠΉμ • ExpandableListλ₯Ό λ§Œλ“œλŠ”λ° μ‚¬μš©μ„ ν–ˆλ‹€. (μœ„μ˜ exampledμ—μ„œ Test1의 ν•˜μœ„ 리슀트λ₯Ό λ§Œλ“œλŠ” 것이라고 κ°€μ •) 이 경우 λͺ¨λ“  ExpamdableListλ₯Ό μ„€λͺ…ν•˜λŠ” 것이 μ•„λ‹Œ νŠΉμ • ν•­λͺ©μ— λŒ€ν•œ 것을 μ„€λͺ…ν•˜λŠ” κΈ°λŠ₯인 것이닀. 이에 μ’€ 더 λ³€μˆ˜λͺ…을 잘 μ •ν•˜κ³ μž ν•œλ‹€λ©΄, λ³€μˆ˜λ₯Ό 이 κΈ°λŠ₯을 μ„€λͺ…ν•˜λŠ” κ²ƒμœΌλ‘œ λ°”κΎΈμ–΄μ•Ό ν•œλ‹€. (λ‚˜λ„ 아직 λΆ€μ‘±ν•΄μ„œ 무엇이 λ§žλŠ”μ§€λŠ” λͺ¨λ₯΄μ§€λ§Œ μ•„λ§ˆλ„ λ§Œλ“ λ‹€λ©΄ MenuDataMaker와 같은 λŠλ‚ŒμœΌλ‘œ λ§Œλ“€μ§€ μ•Šμ„κΉŒ μ‹Άλ‹€ γ…Žγ…Ž)

Reader’s Point of View

λ…μžμ˜ κ΄€μ μ—μ„œ 보기 μ‰¬μ›Œμ•Ό ν•œλ‹€. μ—¬κΈ°μ„œ λ§ν•˜λŠ” λ…μžλŠ” λ‚˜λ₯Ό ν¬ν•¨ν•œλ‹€. 미래의 λ‚΄κ°€ 봀을 λ•Œλ„ μ‰½κ²Œ 잘 νŒŒμ•…ν•  수 μžˆμ–΄μ•Ό ν•˜λ©°, λ‹€λ₯Έ μ‚¬λžŒμ΄ 보기에도 μ‰½κ²Œ νŒŒμ•…ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

e.g.
String[] appList;

ListView applist = // ..skip...

μœ„μ™€ 같은 μƒν™©μ—μ„œ appList와 applistλŠ” 처음 μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œμ—λŠ” Array와 Listview둜 λ‚˜λˆ„μ–΄μ„œ 인식할 수 μžˆλ‹€. ν•˜μ§€λ§Œ μ½”λ“œμ˜ μ•„λž˜μͺ½μ—μ„œ 이 λ³€μˆ˜λ“€μ„ κΈ°μ–΅ν•  수 μžˆμ„κΉŒ?(응,,,κΈ°μ–΅ν•  수 μžˆμ„μ§€λ„?) λΆ€μ •ν™•ν•˜λ‹€λ©΄ λ‹€μ‹œ μœ„λ‘œ μ˜¬λΌμ™€μ„œ 각각의 λ³€μˆ˜μ˜ μ •μ˜λ₯Ό 확인해야 ν•  것이닀. 즉, λ‚˜λ₯Ό μœ„ν•΄μ„œλΌλ„ λ‹€μ‹œ ν•œ 번 Clear Name은 μ€‘μš”ν•˜λ‹€λŠ” 것이닀. λ…μžμ˜ κ΄€μ μ—μ„œ κΌ­ μƒκ°ν•΄λ³΄μž! 이 이름을 λ‚˜μ€‘μ— 봀을 λ•Œλ„ 잘 κΈ°μ–΅ν•  수 μžˆλŠ”μ§€!

References

P.S. μ•„λ¬΄νŠΌ λ³€μˆ˜ 이름이 정말 μ€‘μš”ν•˜λ‹€λŠ” 것! 쒋은 μŠ΅κ΄€μ„ μœ„ν•΄μ„œ 저도 λ…Έλ ₯ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€πŸ˜‰ μΆ”κ°€λ‘œ 더 μ•Œκ²Œ λ˜λŠ” λ‚΄μš©μ΄ μžˆλ‹€λ©΄ μ—…λ°μ΄νŠΈ ν•˜κ² μŠ΅λ‹ˆλ‹€! =)