Вместо технических пакетов (models, utils, handlers) делай пакеты по доменным сущностям: user, order, payment. Каждый пакет содержит свои типы, интерфейсы, бизнес-логику. Зависимости — через интерфейсы, а не конкретные типы из других пакетов. Это уменьшает coupling и делает код более читаемым — ты открываешь пакет user и видишь всё что связано с юзерами.
Как организовать domain-driven пакеты?
Middle+
157 просмотровAFK Offer AI
Что такое string header?