Script & Voltina
Слушай, твой код, прямо как куча макарон! Давай разберем его на отдельные модули, чтобы ты мог прототипировать, не забивая голову всякой ерундой.
Отлично, давай сначала продумаем чёткую структуру модулей, чтобы каждый файл отвечал только за одно конкретное дело. А потом начнём прототипировать постепенно, чтобы код оставался понятным и легко тестируемым.
Ладно, набросай структуру основного пакета, а потом подпакеты для домена, инфраструктуры и логики приложения. Пусть каждый файл отвечает только за одну задачу, и напиши небольшой тестовый пример перед тем, как начинать реализацию. Так прототип будет расти аккуратно, и потом можно будет легко всё переделывать.
Самый верхний уровень – пакет будет `myapp`. Внутри: `domain` для сущностей и ценных объектов, `infrastructure` для базы данных и внешних сервисов, и `app` для логики сценариев. В каждом файле будет только один публичный класс или функция. Сначала добавлю небольшой тестовый пример в каждом модуле, а потом уже буду реализовывать основную часть. Так прототип будет аккуратным и готовым к рефакторингу.