Хотел бы заниматься рефакторингом

«Хотел бы заниматься рефакторингом» — вопрос из категории Софт-скиллы, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Рефакторинг — это улучшение кода без изменения его функциональности. Основные цели: повышение читаемости, поддержки и производительности.

Подходы:

  1. Методы рефакторинга:

    • Извлечение методов (Extract Method)
    • Замена магических чисел константами
    • Упрощение условий
  2. Инструменты:

    • Android Studio: Refactor → Rename/Move/Extract
    • Lint: анализ кода на проблемы
    • Unit-тесты: проверка, что функциональность не сломана

Пример:

// До
fun calculateTotal(price: Double, quantity: Int): Double {
    return price * quantity * 1.2 // 1.2 — налог (магическое число)
}

// После
const val TAX_RATE = 1.2  
fun calculateTotal(price: Double, quantity: Int) = price * quantity * TAX_RATE  

Важно:

  • Рефакторить постепенно, с тестами
  • Избегать "большого взрыва"
  • Использовать VCS (Git) для отката изменений