私は六角形のアーキテクチャに慣れようとしていますが、さまざまなアプローチですでに実現されている一般的な実際の問題を実装する方法がわかりません。私の中心的な問題は、アダプターとポートに抽出された責任のレベルを理解することだと思います。
Web で記事を読む場合は、次のような原始的な例で問題ありません。
mysql/txt/s3/nosql ストレージに実装できる RepositoryInterface があります。
また
NotificationSendingInterface があり、電子メール/SMS/Web プッシュの実現があります
しかし、これらは非常に洗練された例であり、インターフェース/実現の詳細の分離にすぎません。
ただし、実際には、ドメイン モデルでサービスをコーディングすると、通常、インターフェイス + 実現がより深く保証されることがわかっています。
説明目的の例として、ストレージとトランザクションのペアについて質問することにしました。
ストレージのトランザクションの概念は、16 進アーキテクチャでどのように実装する必要がありますか? ドメインレベル内に単純なcrudサービスインターフェースがあると仮定します
StorageRepoInterface
save(...)
update(...)
delete(...)
get(...)
そして、これらのメソッドを使用している間、ある種のトランザクション保証が必要です。たとえば、1 つのトランザクションでの削除 + 保存などです。
ヘックスの概念に従って、どのように設計および実装する必要がありますか?
TransactionalOperationの外部調整インターフェースで実装する必要がありますか? はいの場合、一般に、TransactionalOperationは、 StorageRepoInterfaceのすべての実装と連動するトランザクション保証を実装する方法を認識している必要があります(追加のトランザクション指向操作インターフェイス内の mb) 。
いいえの場合、追加のメソッドを使用して、ドメイン レベル (16 進数内) でStorageRepoInterfaceからの明示的なトランザクション保証があるはずですか?
いずれにせよ、述べたように「分離され、インターフェース化された」外観ではありません。
そのような状況で考え方を正しく変える方法や、どこを読むべきかを教えてもらえますか?
前もって感謝します。