Комментарии 6
Где здесь гексагональная архитектура? Автор просто применил DI рефакторинг и на этом закончил
async_trait это таки прихоть и сейчас можно без него и даже лучше без него делать и юзать подход dynosaur.
Довольно интересный пример с блокчейном! Аккуратно и занимательно.
Суть же подхода, описанного в статье, кажется, можно выразить короче: "Изоляция бизнес-логики от тяжёлых сервисов способствует её тестируемости и поддерживаемости, а также расширяемости сервисов" - что является здоровой практикой.
Небольшое замечание к схеме архитектуры: указано неверное отношение implements от AppState к ChainClient. Implements должно быть от конкретных реализаций же ниже к интерфейсу - но здесь, видимо, указан просто путь запроса, а не иерархия сущностей.
Подскажите пожалуйста, почему в статье используется solana_sdk, а в репозитории по ссылке - rpc via http? Чем они отличаются?

Гексагональная архитектура в Rust: отвязываем бизнес-логику от Solana