Ответ
После рефакторинга обычно обнаруживаются:
- Дублирование кода – одинаковые куски логики в разных местах.
- Сложные методы – функции с высокой цикломатической сложностью (много if/else, вложенностей).
- Устаревшие подходы – например,
AsyncTaskвместо корутин/RxJava. - Нарушение SOLID – например, гигантские классы, нарушающие SRP.
Пример до рефакторинга:
fun updateUI(data: List<String>) {
if (data.isNotEmpty()) {
recyclerView.visibility = View.VISIBLE
emptyView.visibility = View.GONE
adapter.setData(data)
} else {
recyclerView.visibility = View.GONE
emptyView.visibility = View.VISIBLE
}
}
После: Логика вынесена в отдельный метод/класс для управления состоянием UI.