Класс OrderManager на 5 000 строк знает про оплату, склад, письма и отчёты
Любое изменение в OrderManager задевает соседние функции, конфликты слияния — ежедневно, протестировать класс невозможно. Техлид предлагает разбить его, но релизы идут каждую неделю, и остановить разработку на месяц нельзя.
Как действовать?
- Выносить ответственности в классы по одной, под тестами
- Остановить разработку и переписать класс за месяц
- Разбить файл на трейты по 500 строк
- Переименовать класс в OrderService
