🧑🏻💻 1. Non-null を基本にする
// 悪い
val name: String?
// 良い
val name: String
Nullable を作らないことが最も重要。
🧑🏻💻 2. DTOだけ Nullable
data class UserResponse(
val name: String?
)
外部データだけ Nullable にする。
🧑🏻💻 3. Domain は Non-null
data class User(
val name: String
)
アプリ内部では Non-null を維持する。
🧑🏻💻 4. Repositoryで吸収する
fun load(): User =
api.load()?.toUser() ?: User.EMPTY
Repository より先へ Nullable を持ち込まない。
🧑🏻💻 5. デフォルト値を使う
data class User(
val name: String = ""
)
初期値で null を不要にする。
🧑🏻💻 引用