Skip to content

Andromeaning Coding Style

Jinsu Park edited this page Dec 31, 2020 · 1 revision

Android Coding Style

0. 파일 μ œμž‘μž ν‘œμ‹œ

ν•΄λ‹Ή 파일 μž‘μ„±μžλ₯Ό 파일 μ΅œμƒλ‹¨μ— ν‘œκΈ°ν•©λ‹ˆλ‹€.

/*
 * Created by <github id>
 * DESC: <μ„€λͺ…>
 */

1. Kotlin Language Rules

Kotlin μ½”λ“œ μŠ€νƒ€μΌμ˜ κ·œμΉ™μ„ λ”°λ₯Έλ‹€.

2. Import의 경우 전체λ₯Ό λ‹€ ν‘œμ‹œν•  것

Import λ¬Έμ—μ„œ μ™€μΌλ“œμΉ΄λ“œ μ‚¬μš©μ„ κΈˆν•©λ‹ˆλ‹€.

3. ν΄λž˜μŠ€μ™€ ν•¨μˆ˜λͺ…은 λ°˜λ“œμ‹œ κ·Έ μ˜λ„λ₯Ό λͺ…ν™•ν•˜κ²Œ ꡬ뢄할 수 μžˆλŠ” μ΄λ¦„μœΌλ‘œ λ§Œλ“ λ‹€.

ꢌμž₯사항) μ΅œλŒ€ 3~4λ‹¨μ–΄λ‘œ λͺ…λͺ…

ꢌμž₯사항을 지킀기 νž˜λ“ κ²½μš° 길어도 μƒκ΄€μ—†μœΌλ‹ˆ μ˜λ„λ₯Ό μ΅œλŒ€ν•œ λͺ…ν™•ν•˜κ²Œ ꡬ뢄 κ°€λŠ₯ν•˜λ„λ‘ λͺ…λͺ…ν•œλ‹€.

3-1. μΆ•μ•½μ–΄λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μΆ•μ•½μ–΄ μ‚¬μš©μ„ κΈˆν•©λ‹ˆλ‹€.

4. ν•¨μˆ˜

#### 4-1. ν•¨μˆ˜ μ„œλͺ… κ·œμΉ™

ν•¨μˆ˜ μ„œλͺ…이 ν•œ 쀄에 듀어가지 μ•ŠμœΌλ©΄ 각 λ§€κ°œλ³€μˆ˜ 선언을 ν•œ 쀄에 ν•˜λ‚˜μ”© ν‘œμ‹œν•©λ‹ˆλ‹€. 이 ν˜•μ‹μœΌλ‘œ μ •μ˜λœ λ§€κ°œλ³€μˆ˜μ—μ„œλŠ” 단일 λ“€μ—¬μ“°κΈ°λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ‹«λŠ” κ΄„ν˜Έ()) 및 λ°˜ν™˜ μœ ν˜•μ€ μΆ”κ°€ λ“€μ—¬μ“° κΈ° 없이 ν•œ 쀄에 ν•˜λ‚˜μ”© μž…λ ₯λ©λ‹ˆλ‹€.

fun <T> Iterable<T>.joinToString(
    separator: CharSequence = ", ",
    prefix: CharSequence = "",
    postfix: CharSequence = ""
): String {
    // …
}

4-2. ν•¨μˆ˜ μ΅œλŒ€ μž‘μ„± ν—ˆμš© line

νŠΉλ³„ν•œ κ²½μš°κ°€ μ•„λ‹Œμ΄μƒ 각 ν•¨μˆ˜λŠ” 40쀄 이상 μž‘μ„±ν•˜μ§€ μ•ŠλŠ”λ‹€.

ν•¨μˆ˜κ°€ 40쀄이 λ„˜μ§€ μ•Šλ„λ‘ μž‘μ„±ν•˜λ©°, 40쀄을 λ„˜κΈ΄κ²½μš° 섀계가 잘λͺ»λœ 것일 수 μžˆμŒμ„ κ²€ν†  ν•΄μ•Ό ν•©λ‹ˆλ‹€.

4-3. ν•¨μˆ˜ μ΅œλŒ€ 인자수 μ œν•œ

λ©”μ†Œλ“œ μΈμžμˆ˜λŠ” μ΅œλŒ€ 3개둜 μ œν•œν•©λ‹ˆλ‹€.

κ·ΈλŸΌμ—λ„ 3개 이상 전달 ν•΄μ•Όν•˜λŠ” 경우 dataClass ν˜Ήμ€ λ°°μ—΄, Map, Pair 등을 κ³ λ €ν•©λ‹ˆλ‹€.

5. ν•œμ€„μ—λŠ” ν•˜λ‚˜μ˜ .λ§Œμ„ ν—ˆμš©ν•©λ‹ˆλ‹€.

λ””λ―Έν„°μ˜ 법칙을 지킀기.

ν•œμ€„μ—λŠ” ν•˜λ‚˜μ˜ .λ§Œμ„ μ‚¬μš©ν•  것.

6. Define Fields in Standard Place

Fields 선언은 ν‘œμ€€μœ„μΉ˜λ₯Ό 지킨닀.

ꢌμž₯ 사항 1) else ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

if(num < 0){
    println("negative number")
    return
}
println("positive number")

ꢌμž₯사항 2) TODO, FIXME 주석 μ‚¬μš©

단기 처방 및 μ™„λ²½ν•˜μ§€ μ•Šμ€ ν•΄κ²° 책일 경우 ν•΄λ‹Ή 주석문을 μ‚¬μš©ν•©λ‹ˆλ‹€.

ꢌμž₯사항 3) μ£Όμ„μ˜ μ‚¬μš©

주석 μ‚¬μš©μ„ μ΅œλŒ€ν•œ μ§€μ–‘ν•©λ‹ˆλ‹€.

정말 μ„€λͺ…이 ν•„μš”ν•œ κ²½μš°λŠ” μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‚˜, 주석 λ˜ν•œ μœ μ§€λ³΄μˆ˜ 해야함을 μžŠμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

κ·Έ 이외 ꡳ이 ν•„μš”ν•˜μ§€ μ•Šμ€ 주석은 μž‘μ„±ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.