在一次PR中,我得到了一些重命名变量的建议。并对*MutableLiveData
的连接提出了建议。
private val _state = MutableLiveData<AppointmentsUiState>()
val state: LiveData<AppointmentsUiState>
get() = _state
我的两个变量。这是一个Android ViewModel。经过这些建议,我同意uiState
可能会更好。而stateMutableLiveData
和stateObservable
则是两个建议。我不喜欢这些名字,但我的问题是,我想不出一个有效的理由不使用他们的建议,除了:
- 鲍勃叔叔说不要把数据类型放入名称中
- Observable可以是一种类型,它不是Observable;LiveData恰好是可观测的
- 感觉很恶心
为什么不把数据类型放在变量名中?
- 冗余
你可以看到变量的类型,所以如果你把它们的类型写在它们的名字里,你只需要复制信息。
- 可维护性
将变量与其类型耦合,因此如果更改类型,则必须更改名称。
- 歧义
如果变量有多个接口,则必须选择其中一个。