六角形のアーキテクチャの説明が必要


8

Alistair CockburnのHexagonal Architectureについて興味を持って読んでいます。

彼の主張の1つは次のとおりです。

最後に、自動化された関数回帰テストは、ビジネスロジックをプレゼンテーションレイヤーから除外するという約束の違反を検出します。組織はロジックリークを検出して修正できます。

この点はわかりません。テストはヘッドレスであるため、UIレイヤーを呼び出すと例外がスローされると彼は言っていますか?それは非常に健全なテストではないようです!

回答:


14

彼のポイントは、UIなしですべてのビジネスロジックを実行する一連の自動テストを使用すると、UIにビジネスロジックがあるかどうかが明確になるということです。

このようなテストスイートを作成するには、基本的に、データを提供して結果を確認するための非常に薄いテスト専用の「非ユーザー」インターフェースを作成する必要があります。ビジネスロジックのいずれかが実際にUIにある場合、このテストインターフェースでそのロジックを複製していることに気づき、間違いに気づくでしょう。


なるほど。しかし、開発者がプレゼンテーション層にビジネスロジックを導入することにより、公開されたAPIを拡張するとどうなるでしょうか。拾われないでしょう?
Victor Grazi

1
悪意のある開発者がテストなしで属していないものを追加することから何も保護しません。
Don Roby

したがって、パターンは、ビジネスロジックをプレゼンテーション層に移動するのに十分な愚か者から保護しますが、プレゼンテーションコードに新しいビジネスAPIを導入するほど愚かである人からは保護しません。
Victor Grazi

「このテストインターフェースでそのロジックを複製していることに気づくでしょう」またはUIロジックを使用するようにテストを作成するかもしれません。
Daniel Kaplan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.