TL;DR: Refactor and extract functions longer than 5–10 lines of code.

Проблемы

  • Низкая сплоченность
  • Высокая связь
  • Трудно читать
  • Низкое повторное использование

Решения

  • Рефакторинг.
  • Создайте небольшие объекты, решающие некоторые задачи, и выполните их модульное тестирование.
  • Методы составления.

Примеры

  • Библиотеки

Образец кода

Неправильный

class ChessBoard() {
    init {
        placeOnBoard(whiteTower)
        placeOnBoard(whiteKnight)
        // All other write pieces

        // Empty space to pause definition
        placeOnBoard(blackTower)
        placeOnBoard(blackKnight)
        // All other black pieces
    }

    fun placeOnBoard(piece: Piece) = TODO()
}

Верно

class ChessBoard() {
    init {
        placeWhitePieces()
        placeBlackPieces()
    }

    private fun placeWhitePieces() = TODO()
    private fun placeBlackPieces() = TODO()
}

Заключение

Разделите длинный метод на более мелкие части. Разбивайте сложные алгоритмы на части. Это также упростит модульное тестирование этих частей. Более того, это улучшает читабельность и позволяет нам сосредоточиться на правильном уровне абстракции в вашем методе.

Больше информации

Кредиты

Первоначально опубликовано на https://yonatankarp.com.