728x90
- 코틀린은 잘 정리된 코딩 컨벤션을 가지고 있음
- 코틀린 문서의 Coding Convensions 참고
- 컨벤션을 최대한 지켜주는 것이 좋음
- 어떤 프로젝트를 접해도 쉽게 이해할 수 있음
- 다른 외부 개발자도 프로젝트의 코드를 쉽게 이해할 수 있음
- 다른 개발자도 코드의 작동 방식을 쉽게 추측할 수 있음
- 코드를 병합하고, 프로젝트의 코드 일부를 다른 코드로 이동하는 것이 쉬움
- 컨벤션을 지킬 때 도움이 되는 두 가지 도구가 있음
- IntelliJ Formatter: 공식 코딩 컨벤션 스타일에 맞춰서 코드를 변경해 줌
- settings → Editor → Code Style → Kotlin 에서 ‘Set from…’ 링크 클릭
- ‘Predefined style/Kotlin style guide’ 선택
- ktlint: 많이 사용되는 코드를 분석하고 컨벤션 위반을 알려주는 린터
- IntelliJ Formatter: 공식 코딩 컨벤션 스타일에 맞춰서 코드를 변경해 줌
- 자주 위반되는 규칙중 하나는 클래스와 함수의 형식
class FullName(val name: String, val surname: String)
- 많은 파라미터를 갖고 있는 클래스는 각각의 파라미터를 한 줄씩 작성하는 방법을 사용
class Person(
val id: Int = 0,
val name: String = "",
val surname: String = ""
): Human(id, name) {
}
- 함수도 파라미터들을 많이 가지고 있다면 아래 처럼 작성
public fun <T> Iterable<T>.joinToString(
separator: CharSequence = ", ",
prefix: CharSequnce = "",
postfix: CharSequence = "",
limit: Int = -1,
truncated: CharSequence = "...",
transform: ((T) -> CharSequence)? = null
): String {
}
- 코딩 컨벤션을 다음과 같이 이해하는 사람도 있지만, 다음 코드와 위에서 설명한 코드는 완전히 다름
class Person(val id: Int = 0,
val name: String = "",
val surname: String = "") : Human(id, name) {
}
- 위 코드는 두가지 측면에서 문제가 될 수 있음
- 모든 클래스의 아규먼트가 클래스 이름에 따라서 다른 크기의 들여쓰기를 갖음
- 클래스의 이름이 변경될 때 생성자 파라미터의 들여쓰기를 조정해야 함
- 클래스가 차지하는 공간의 너비가 너무 큼
- 처음 class 키워드가 있는 줄도 너비가 너무 큼
- 마지막 파라미터와 슈퍼클래스 지정이 함께 있는 줄도 너무 큼
- 모든 클래스의 아규먼트가 클래스 이름에 따라서 다른 크기의 들여쓰기를 갖음
- 실행에는 문제가 없지만 프로젝트의 컨벤션은 반드시 지켜주는 것이 좋음
- 마치 한사람이 작성한 것처럼 작성되어야 함
- 코딩 컨벤션은 굉장히 중요
- 가독성과 관련된 어떤 책을 보아도, 코딩 컨벤션과 관련된 내용을 강조
- 코딩 컨벤션 일관성을 유지하기
728x90
'코틀린 스터디 > 이펙티브 코틀린' 카테고리의 다른 글
아이템20) 일반적인 알고리즘을 반복해서 구현하지 말라 (0) | 2024.04.17 |
---|---|
아이템19) knowledge를 반복하여 사용하지 말라 (0) | 2024.04.17 |
아이템17) 이름 있는 아규먼트를 사용하라 (0) | 2024.04.17 |
아이템16) 프로퍼티는 동작이 아니라 상태를 나타내야 한다 (0) | 2024.04.17 |
아이템15) 리시버를 명시적으로 참조하라 (0) | 2024.03.19 |