Предложения по рефакторингу кода
- Добавить в проект dependency injection для того чтобы избежать огромных
__init__
методов. Классы ExtensionService
и ExtensionSetup
в качестве примеров. У AbstractRule
такой проблемы нет только потому что вместо проброса сервисов в конструкторе используется метод bind_services
для избежания километрового boilerplate
- Убрать из модуля
perxis.extensions.extension_service
все вспомогательные функции и модели для работы с операциями. Если в наличии будет di
- использовать его.
- Побить класс
ExtensionSetup
на подклассы. Использовать di
если он будет. Использовать PerxisItemsWrapper
для работы с action'ами
- Реализовать такие же врапперы для групп, клиентов и ролей. Использовать их в классе
ExtensionSetup