Alex_Wells
@Alex_Wells
PHP/Kotlin

Разбить God class?

Здравствуйте. Написал пакет для парсинга документации, в результате всю работу делает один "God class". Некоторые методы просто огромны. Вот пример метода: тык

Трейты - не выход, так как нормальной поддержи автокомплита у них нет (только паблик свойства и методы). Тэг Laravel прикрепил потому что не знаю, есть ли в laravel какие-то штуки, которые помогут с этим.

Вопрос: какие есть практики, что прочитать/посмотреть, какой код перерыть что бы иметь понятие о том, как это сделать правильно? Правильно это так, что бы не стыдно показать и с возможностью покрыть юнит тестами (сейчас только фичер).

Заранее спасибо.

UPD: Вот еще прикрутил CI один, так RouteWrapper портит оценку с A на F (минимально возможную) исключительно из-за сложности класса: тык
  • Вопрос задан
  • 391 просмотр
Решения вопроса 1
@red-barbarian
навскидку (не разбираясь с логикой класса)
у тебя много методов зависят просто от $this->route
их уже можно выделить в один класс.
если есть аналогичные моменты от других переменных поступать также.
Вообщем разбиение делается так: анализ структуры класса и выделение подсттруктур переменных + методов. Эти подструктуры будут внутренне сильно связаны. И слабо связаны между собой. Это будет намек, что можно выделять классы из текста.
Пониманию структуры может помочь анализ ответственности год-класса.
Как бы первое, что нужно сделать. Остальное станет ясным по мере разбиения.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы