-
Notifications
You must be signed in to change notification settings - Fork 1
[AN] 코드 컨벤션
Hyeyeon Gong edited this page Aug 4, 2024
·
3 revisions
-
PascalCase, 명사 또는 명사구로 시작
// Travel.kt // TravelActivity.kt // VisitFragment.kt class Travel { ... } class TravelActivity { ... } class VisitFragment { ... }
-
Dto
-
ResponseBody에 사용될 때
: data 이름 + Responsedata class TravelResponse(...)
-
RequestBody에 사용될 때
: data 이름 + Requestdata class TravelRequest(...)
-
그 외
: data 이름 + dtodata class TravelVisitDto(...)
-
-
Client
-
서비스명 + Client
object StaccatoClient { ... }
-
-
ApiService
-
카테고리명 + ApiService
interface TravelApiService { ... }
-
-
DataSource
-
interface
: 카테고리명 + DataSourceinterface TravelRemoteDataSource { ... }
-
implementation
: 카테고리명 + source 타입 + DataSourceclass TravelRemoteDataSource() { ... }
-
-
Repository
-
interface
: 카테고리명 + Repositoryinterface TravelRepository { ... }
-
implementation
: 카테고리명 + Default + Repositoryclass TravelDefaultRepository() { ... }
-
-
Handler
-
화면명 + Handler
// ex) TravelFragment.kt에 사용되는 Handler interface TravelHandler { ... }
-
-
UiModel
-
화면명 + UiModel
// ex) TravelFragment.kt에 사용되는 UiModel data class TravelUiModel(...)
-
-
ViewModel
-
화면명 + ViewModel
data class TravelViewModel(...)
-
-
Mapper
-
카테고리명 + Mapper
data class TravelMapper(...)
-
-
-
camelCase, 동사 또는 동사구로 시작, 요약이 아닌 풀네임으로 작성
override
public
-
private
- 공용 private 함수를 맨 아래에 위치
companion object
-
@GET
fun getXXX(...)
-
@POST
fun postXXX(...)
-
@DELETE
fun deleteXXX(...)
-
@PUT
fun putXXX(...)
-
@GET
- 단수
fun getXXX(...)
- 복수
// 조건을 걸어 일부만 가져올 때 fun getXXXs(...) // 전부 가져올 때 fun getAllXXXs(...)
- 단수
-
@POST
fun addXXX(...) or fun createXXX(...)
-
@DELETE
fun deleteXXX(...)
-
@PUT
fun updateXXX(...)
-
서버에서 데이터를 불러올 때
fun fetchXXX(...)
-
camelCase, 명사 또는 명사구로 시작, 요약이 아닌 풀네임으로 작성
val userName = "user"
-
UPPER_SNAKE_CASE(모두 대문자), 밑줄로 단어 구분, scalar 값은 const 변경자 사용
const val NUMBER = 5 val NAMES = listOf("Alice", "Bob") val EMPTY_ARRAY = arrayOf()
CamelCase의 대문자를 축약한 형태
단, 축약해서 한 글자라면 풀네임 작성
ex) TextView → tv
, Space → space
View | 축약형 |
---|---|
TextView | tv_ |
ImageView | iv_ |
CheckBox | cb_ |
RecyclerView | rv_ |
EditText | et_ |
ProgressBar | pb_ |
FrameLayout | frame_ |
TableLayout | table_ |
TabLayout | tab_ |
NestedScrollView | nsv_ |
Space | space_ |
Switch | switch_ |
AbcDeFgh | adf_ |
Abcdef | abcdef_ |
MyCustomView | my_custom_view |
YourView | your_view |
Button | btn_ |
예외
- View의 이름에 Material, AppCompat이 있다면 이는 생략
- ex) MaterialToolbar →
toolbar
- ex) MaterialToolbar →
- View의 이름이 Toolbar, Divider 와 같이 1개의 대문자만 존재한다면 풀네임 작성
단, Button은 btn으로 작성
- ex) Divider →
divider
, Button →btn
- ex) Divider →
- Layout View의 경우 Layout 글자는 생략하고 종류 이름만 작성
- ex) FrameLayout →
frame
- ex) FrameLayout →
- 🫶 WooDangTang!Tang! HuruHuru~ Pair