「起きたこと」で名前を付けるか、「意図」で名前を付けるか

「起きたこと」で名前を付けるか、「意図」で名前を付けるか アプリ開発をしていると、 OnClickPayment OnClickDelete OpenPaymentEdit ShowDeleteDialog のように、イベントや関数の名前をどう付けるべきか迷うことがあります。 特に ViewModel を使った設計では、 「起きたこと」を名前にするべきか 「やりたいこと(意図)」を名前にするべきか で悩むことがよくあります。 結論 私は次のように考えています。 UI → ViewModel は「起きたこと」 ViewModel → UI は「意図」 で名前を付けると整理しやすくなります。 ただし、この方針は絶対ではありません。 この方針を破ったほうが自然な名前になる場合も多々あることに注意してください。 UI → ViewModel は「起きたこと」 例えば Compose の画面から ViewModel にイベントを伝える場合です。 viewModel.onClickPayment() viewModel.onClickDelete() viewModel.onTextChanged(text) ここで ViewModel に伝えたいのは、 「ユーザーが何をしたか」 です。 まだ ViewModel は、その結果として何を行うかを決めていません。 そのため、 fun onClickPayment() fun onClickDelete() fun onTextChanged(text: String) のような名前が自然です。 ViewModel → UI は「意図」 一方で、ViewModel から UI に送るイベントは少し性質が異なります。 例えば、 sealed class UiEvent { data class OpenPaymentEdit( val paymentId: Int ) : UiEvent() data object ShowDeleteDialog : UiEvent() data class ShowSnackbar( val messageRes: Int ) : UiEvent() } ここで ViewModel が伝えたいのは、 ...

2026年6月2日 · 2 分 · 奥田 智紘