Kush's Wiki

ヘキサゴナルアーキテクチャ

commited date: 2024-07-31

Hexagonal Architecture

#Software Design #Alistair Cockburn

別名 「Ports and Adapter」パターン

別名の通り、外部とのやりとりをする口であるポートとポートに対する実装のアダプタを用意する。

ポートとアダプタはプライマリとセカンダリに分類され、プライマリは駆動され(例:user-side)、セカンダリは駆動する(例:database)という関係性である。

プライマリ、セカンダリの命名はユースケースのプライマリアクター、セカンダリアクターを元にしている。

図の左側にプライマリ、右側にセカンダリを置き説明がされる。

ポートとアダプタはアプリケーションに対して左右の2つのみでよいが、加えてアドミンや通知といった役割のポートとアダプタを用意することもできる。ただしそれらはたかだか6つは超えないことから「ヘキサゴナル」の図で表されている。