Skip to content

[AN] 코드 컨벤션

Hyeyeon Gong edited this page Aug 4, 2024 · 3 revisions

🅺 Kotlin Convention

1️⃣ File(Class, Interface)

  • PascalCase, 명사 또는 명사구로 시작

    // Travel.kt             // TravelActivity.kt            // VisitFragment.kt
    class Travel { ... }     class TravelActivity { ... }    class VisitFragment { ... }

    📂 data

    • Dto

      • ResponseBody에 사용될 때 : data 이름 + Response

        data class TravelResponse(...)
      • RequestBody에 사용될 때 : data 이름 + Request

        data class TravelRequest(...)
      • 그 외 : data 이름 + dto

        data class TravelVisitDto(...)
    • Client

      • 서비스명 + Client

        object StaccatoClient { ... }
    • ApiService

      • 카테고리명 + ApiService

        interface TravelApiService { ... }
    • DataSource

      • interface : 카테고리명 + DataSource

        interface TravelRemoteDataSource { ... }
      • implementation : 카테고리명 + source 타입 + DataSource

        class TravelRemoteDataSource() { ... }
    • Repository

      • interface : 카테고리명 + Repository

        interface TravelRepository { ... }
      • implementation : 카테고리명 + Default + Repository

        class TravelDefaultRepository() { ... }

    📂 presentation

    • Handler

      • 화면명 + Handler

        // ex) TravelFragment.kt에 사용되는 Handler
        interface TravelHandler { ... }
    • UiModel

      • 화면명 + UiModel

        // ex) TravelFragment.kt에 사용되는 UiModel
        data class TravelUiModel(...)
    • ViewModel

      • 화면명 + ViewModel

        data class TravelViewModel(...)

    common

    • Mapper
      • 카테고리명 + Mapper

        data class TravelMapper(...)

2️⃣ Function

  • camelCase, 동사 또는 동사구로 시작, 요약이 아닌 풀네임으로 작성

    함수 순서

    • override
    • public
    • private
      • 공용 private 함수를 맨 아래에 위치
    • companion object

    ApiService

    • @GET

      fun getXXX(...)
    • @POST

      fun postXXX(...)
    • @DELETE

      fun deleteXXX(...)
    • @PUT

      fun putXXX(...)

    DataSource, Repository

    • @GET

      • 단수
        fun getXXX(...)
      • 복수
        // 조건을 걸어 일부만 가져올 때
        fun getXXXs(...)
        
        // 전부 가져올 때
        fun getAllXXXs(...)
    • @POST

      fun addXXX(...) or fun createXXX(...) 
    • @DELETE

      fun deleteXXX(...)
    • @PUT

      fun updateXXX(...)

    ViewModel

    • 서버에서 데이터를 불러올 때

      fun fetchXXX(...)

3️⃣ Variable

  • camelCase, 명사 또는 명사구로 시작, 요약이 아닌 풀네임으로 작성

    val userName = "user"

4️⃣ Constant

  • UPPER_SNAKE_CASE(모두 대문자), 밑줄로 단어 구분, scalar 값은 const 변경자 사용

    const val NUMBER = 5
    val NAMES = listOf("Alice", "Bob")
    val EMPTY_ARRAY = arrayOf()

💠 스타카토 💠

Home: 스타카토 소개

⚙️ 기술 문서

🖐️ Common

🅰️ Android

🅱️ Backend


🤪 우리들의 스타카토

개발카토

  • 🫶 WooDangTang!Tang! HuruHuru~ Pair

낭만카토

🚀 트러블 슈팅

AN

  • 활성화 상태인 키보드 숨기기

BE

  • something_trouble
Clone this wiki locally