-
[EffectiveKotlin] 가독성을 목표로 설계하라언어/Kotlin 2022. 3. 16. 21:07반응형
1. Unit?을 리턴하지 말라
Unit은 Java의 void와 같이 반환값이 없다는것을 명시하지만 Unit?는 반환값이 없다는 것과 NULL을 리턴합니다.
차라리 Boolean 형태로 반환하자
// 나쁜 예 fun verifyKey(key: String): Unit? = //... verifyKey(key) ?: return // 좋은 예 fun verifyKey(key: String): Boolean? = //... if(!verifyKey(key)) return
2. 리시버를 명시적으로 참조하라
this, it을 명시적으로 사용해 주자
3. 프로퍼티는 동작이 아니라 상태를 나타내야한다
원칙적으로 프로퍼티는 상태를 나태거나 설정하기 위한 목적으로만 사용하는것이 좋습니다.
// 나쁜 예 val Tree<Int>.sum: Int get() = when (this) { is Leaf -> value is Notde -> left.sum + right.sum } // 좋은 예 val Tree<Int>.sum: Int = when (this) { is Leaf -> value is Notde -> left.sum + right.sum }
4. 이름 있는 아규먼트를 사용하라
다른 언어에서는 아규먼트의 이름을 명시할 수 없지만, 코틀린에서는 가능합니다.
// 나쁜 예 fun getManager(createdAt: DateTime, updatedAt: DateTime): Manager { ... } val createdAt: DateTime = ... val updatedAt: DateTime = ... getManager(updatedAt, createdAt)
위와 같은 경우 updatedAt과 createdAt이 바뀌었지만 컴파일 시점 및 코드리뷰에서 제대로 확인되지 않을 가능성이 있습니다.
// 좋은 예 fun getManager(createdAt: DateTime, updatedAt: DateTime): Manager { ... } val createdAt: DateTime = ... val updatedAt: DateTime = ... getManager( updatedAt = updatedAt, createdAt = createdAt, )
반응형'언어 > Kotlin' 카테고리의 다른 글
lateinit 사용하기 (0) 2022.03.17 [EffectiveKotlin] 예외를 활용해 코드에 제한을 걸어라 (0) 2022.03.17 [EffectiveKotlin] 타입을 명확하게 지정하라 (0) 2022.03.13 [EffectiveKotlin] 최대한 플랫폼 타입을 사용하지 말라 (0) 2022.03.10 [EffectiveKotlin] 변수의 스코프를 최소화하라 (0) 2022.03.07