Item 56. Doc Comment

곡개된 API μš”μ†Œμ—λŠ” 항상 λ¬Έμ„œν™” 주석을 μž‘μ„±ν•˜λΌ

곡개된 APIλ₯Ό μ˜¬λ°”λ‘œ λ¬Έμ„œν™”ν•˜κΈ° μœ„ν•΄μ„  μ•„λž˜μ˜ μš”κ±΄λ“€μ„ μΆ©μ‘±ν•΄μ•Ό ν•œλ‹€.

  • 곡개된 λͺ¨λ“  클래슀, μΈν„°νŽ˜μ΄μŠ€, λ©”μ„œλ“œ, ν•„λ“œ 선언에 λ¬Έμ„œν™” 주석을 달아야 ν•œλ‹€.

  • 직렬화 κ°€λŠ₯ 클래슀라면 직렬화 ν˜•νƒœμ— κ΄€ν•΄μ„œλ„ λ¬Έμ„œν™”ν•΄μ•Ό ν•œλ‹€.

  • μŠ€λ ˆλ“œ μ•ˆμ „ν•˜λ“  μ•ˆν•˜λ“  μŠ€λ ˆλ“œ μ•ˆμ „ μˆ˜μ€€μ„ λͺ…μ‹œν•΄μ•Ό ν•œλ‹€.

  • μœ μ§€λ³΄μˆ˜κΉŒμ§€ κ³ λ €ν•œλ‹€λ©΄ κ³΅κ°œλ˜μ§€ μ•Šμ€ 클래슀, μΈν„°νŽ˜μ΄μŠ€, μƒμ„±μž, λ©”μ„œλ“œ, ν•„λ“œμ—λ„ κ°„λž΅ν•˜κ²Œλ‚˜λ§ˆ λ¬Έμ„œν™” 주석을 λ‹¬μ•„λ‘λŠ” 것이 μ’‹λ‹€.

  • κΈ°λ³Έ μƒμ„±μžμ—λŠ” λ¬Έμ„œν™” 주석을 달 수 μ—†μœΌλ‹ˆ κΈ°λ³Έ μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜λ©΄ μ•ˆλœλ‹€.

  • 첫 번째 λ¬Έμž₯은 μš”μ•½ μ„€λͺ…μœΌλ‘œ κ°„μ£Όλ˜κΈ° λ•Œλ¬Έμ— λŒ€μƒμ˜ κΈ°λŠ₯을 κ³ μœ ν•˜κ²Œ κΈ°μˆ ν•΄μ•Ό ν•œλ‹€.

λ©”μ„œλ“œ λ¬Έμ„œν™” 주석

특히 λ©”μ„œλ“œ λ¬Έμ„œν™” 주석은 ν•΄λ‹Ή λ©”μ„œλ“œμ™€ ν΄λž‘λ¦¬μ–ΈνŠΈ μ‚¬μ΄μ˜ κ·œμ•½μ„ λͺ…λ£Œν•˜κ²Œ κΈ°μˆ ν•΄μ•Ό ν•œλ‹€.

  • μ–΄λ–»κ²Œ(how)κ°€ μ•„λ‹Œ 무엇(what)을 ν•˜λŠ”μ§€λ₯Ό 기술

  • ν΄λΌμ΄μ–ΈνŠΈκ°€ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜κΈ° μœ„ν•œ μ „μ œμ‘°κ±΄(precondition) 기술

    • 일반적으둜 @throws νƒœκ·Έλ‘œ 비검사 μ˜ˆμ™Έλ₯Ό μ„ μ–Έν•˜μ—¬ μ•”μ‹œμ μœΌλ‘œ 기술

  • λ©”μ„œλ“œ μˆ˜ν–‰ ν›„ λ§Œμ‘±ν•΄μ•Ό ν•˜λŠ” 사후쑰건(postcondition)을 기술

  • λΆ€μ‹œμŠ€ν…œμ˜ μƒνƒœμ— 영ν–₯을 λ―ΈμΉ˜λŠ” 경우 λΆ€μž‘μš©(side effect)을 기술

  • @param, @return νƒœκ·Έ μ‚¬μš©ν•˜μ—¬ λ©”μ„œλ“œμ˜ λ§€κ°œλ³€μˆ˜μ™€ λ°˜ν™˜κ°’ 기술

    • 관둀상 ν•΄λ‹Ή λ§€κ°œλ³€μˆ˜κ°€ λœ»ν•˜λŠ” κ°’μ΄λ‚˜ λ°˜ν™˜κ°’μ˜ 의미λ₯Ό κ°„λž΅ν•˜κ²Œ 기술

  • @throws νƒœκ·Έ μ‚¬μš©ν•˜μ—¬ λ©”μ„œλ“œκ°€ 던질 수 μžˆλŠ” λͺ¨λ“  μ˜ˆμ™Έ 기술(검사/비검사 λͺ¨λ‘)

μœ„ κ·œμΉ™μ„ 지킨 λ¬Έμ„œν™” 주석 μ˜ˆμ‹œλŠ” μ•„λž˜μ™€ κ°™λ‹€.

κ·Έ 외에 νŠΉμˆ˜ν•œ λ¬Έμ„œν™” 주석

κ·Έ 외에 μ œλ„€λ¦­ νƒ€μž…, μ—΄κ±° νƒ€μž…, μ• λ„ˆν…Œμ΄μ…˜ νƒ€μž…μ„ λ¬Έμ„œν™”ν•  λ•ŒλŠ” 좔가적인 주석을 달아야 ν•œλ‹€.

  • μ œλ„€λ¦­ νƒ€μž… : λͺ¨λ“  νƒ€μž… λ§€κ°œλ³€μˆ˜

  • μ—΄κ±° νƒ€μž… : λͺ¨λ“  μƒμˆ˜

  • μ• λ„ˆν…Œμ΄μ…˜ νƒ€μž… : λͺ¨λ“  멀버

Last updated

Was this helpful?