Ответ
Middle Developer умеет самостоятельно решать типовые задачи, знает стандартные библиотеки и фреймворки, но может испытывать трудности с нестандартными кейсами. Senior не только решает сложные задачи, но и проектирует архитектуру, обучает команду, принимает стратегические решения.
Пример:
Middle:
fun loadData() {
viewModelScope.launch {
val data = repository.getData()
_uiState.value = UiState.Success(data)
}
}
Senior предусмотрит ошибки, кэширование, отмену корутин:
fun loadData() {
viewModelScope.launch {
_uiState.value = UiState.Loading
try {
val data = repository.getCachedData() ?: repository.fetchData()
_uiState.value = UiState.Success(data)
} catch (e: Exception) {
_uiState.value = UiState.Error(e)
}
}.also { job ->
onCleared { job.cancel() }
}
}
Senior также думает о масштабируемости и поддерживаемости кода.