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.