Обновить

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

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8.2K
Всего голосов 9: ↑6 и ↓3+4
Комментарии6

Комментарии 6

Где здесь гексагональная архитектура? Автор просто применил DI рефакторинг и на этом закончил

А как, по-вашему, реализуется Гексагональная архитектура без dependency injection?

А где я написал что эта архитектура реализуется без DI?

async_trait это таки прихоть и сейчас можно без него и даже лучше без него делать и юзать подход dynosaur.

глянул dynosaur. хороший подход, если нужно сохранить zero cost для статической диспетчеризации

В моем случае AppState использует только dyn поэтому оверхед async_trait не критичен, а его простота и популярность в экосистеме сыграли в его пользу для туториала
Но за альтернативу спасибо, полезно знать

Довольно интересный пример с блокчейном! Аккуратно и занимательно.

Суть же подхода, описанного в статье, кажется, можно выразить короче: "Изоляция бизнес-логики от тяжёлых сервисов способствует её тестируемости и поддерживаемости, а также расширяемости сервисов" - что является здоровой практикой.

Небольшое замечание к схеме архитектуры: указано неверное отношение implements от AppState к ChainClient. Implements должно быть от конкретных реализаций же ниже к интерфейсу - но здесь, видимо, указан просто путь запроса, а не иерархия сущностей.

Подскажите пожалуйста, почему в статье используется solana_sdk, а в репозитории по ссылке - rpc via http? Чем они отличаются?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации