上に六角形アーキテクチャを構築AWS - AWS 規範的ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

上に六角形アーキテクチャを構築AWS

ファーカン・オルク、ドミニク・ゴビー、ダリウス・クンス、ミハル・プロスキ、Amazon Web Services (AWS)

2022年6月 (ドキュメント履歴)

このガイドでは、ソフトウェアアーキテクチャを開発するためのメンタルモデルと一連のパターンについて説明します。これらのアーキテクチャは、製品の採用が進むにつれて、組織全体で簡単に保守、拡張、拡張できます。Amazon Web Services (AWS) などのクラウドハイパースケーラーは、中小企業から大企業まで、さまざまな企業がイノベーションを起こして新しいソフトウェア製品を開発するための基盤となります。このような新しいサービスや機能の導入が急速に進んでいるため、ビジネス関係者は、新しいアイデアをできるだけ早くテストして検証できるように、開発チームが新しい MVP (Minimimum Viable Products) をより早くプロトタイプ化することを開発チームに期待するようになっています。多くの場合、これらの MVP は採用され、エンタープライズソフトウェアエコシステムの一部となります。こうした MVP を作成する過程で、チームが SOLID の原則や単体テストなどのソフトウェア開発ルールやベストプラクティスを放棄することがあります。彼らは、このアプローチが開発をスピードアップし、市場投入までの時間を短縮すると考えています。しかし、すべてのレベルでソフトウェアアーキテクチャの基礎モデルとフレームワークを作成できなければ、製品の新機能の開発は困難になるか、不可能にさえなります。確実性の欠如や要件の変化は、開発プロセスの進行を遅らせることにもなりかねません。

このガイドでは、提案されているソフトウェアアーキテクチャについて、低レベルの六角形アーキテクチャから、ドメイン駆動設計 (DDD) を使用してこれらの課題に対処する高レベルのアーキテクチャと組織的な分解までを順を追って説明します。DDDは、ビジネスの複雑さを管理し、新機能が開発されるたびにエンジニアリングチームを拡大するのに役立ちます。ユビキタスな言葉を使うことで、ビジネス関係者と技術関係者をドメインと呼ばれるビジネス上の問題に結びつけます。ヘキサゴナル・アーキテクチャは、バウンディッド・コンテクストと呼ばれる非常に特殊な領域において、このアプローチを技術的に可能にします。境界付きコンテキストとは、ビジネス上の問題の中でもまとまりが強く、結合が緩いサブエリアです。複雑さに関係なく、すべてのエンタープライズソフトウェアプロジェクトには六角形アーキテクチャを採用することをお勧めします。

六角形アーキテクチャは、エンジニアリングチームがビジネス上の問題を最初に解決することを奨励しますが、従来の階層型アーキテクチャでは、エンジニアリングの焦点はドメインから技術的な問題を解決することにシフトします。さらに、ソフトウェアが六角形のアーキテクチャに従うと、テスト駆動型開発アプローチを採用しやすくなり、開発者がビジネス要件をテストするために必要なフィードバックループが減ります。最後に、コマンドとコマンドハンドラーを使用することは、SOLIDの単一責任とオープンクローズドな原則を適用する方法です。これらの原則に従うことで、プロジェクトに取り組む開発者やアーキテクトが簡単にナビゲートして理解できるコードベースが作成され、既存の機能に重大な変更を加えるリスクが軽減されます。

このガイドは、ソフトウェア開発プロジェクトに六角形アーキテクチャとDDDを採用することの利点を理解したいソフトウェアアーキテクトや開発者を対象としています。AWS六角形アーキテクチャをサポートするアプリケーションのインフラストラクチャを設計する例も含まれています。実装例については、AWS Prescriptive Guidance ウェブサイトの「PythonAWS Lambda プロジェクトを使用して六角形アーキテクチャを構築する」を参照してください。