読書ノート『Clean Architecture』その5:アーキテクチャ(細かい観点)

インターフェイスアダプターの話

23章の内容。

前章でビジネスルールと外的要因の間を取り持つ層としてインターフェイスアダプターが出てくる。

この辺はHumble Objectパターンのが適用されていて以下のような境界を作り出す。

プレゼンターとビュー
テストとアーキテクチャ
データベースゲートウェイ
ORM
サービスリスナー

境界の引き方に関して

24章、25章の内容。

境界を引くと柔軟性が上がるがコストとのトレードオフになる。

なのでアーキテクトは将来的なことを見越してコストとのいい塩梅の引き方や境界の明確さを見定める必要があるという話。

YAGNIに反するがアーキテクトは将来的な見通しも必要だという話。

Mainコンポーネント

26章の内容。

最下層コンポーネントで、コンポーネントの生成調整監督を行うコンポーネントを本書ではこう呼ぶ。

サービスについて

27章の内容。

サービス境界はアーキテクチャ境界ではないという話。

「サービス志向アーキテクチャ」とか「マイクロサービスアーキテクチャ」とか最近よく言われるが、それに対する批評。

サービス境界でアーキテクチャ境界を引くと保守性の低いものになる。

テストについて

28章の内容。

テストは詳細であるがシステムの一部である。脆弱なテストはシステムの変更を阻むことになる。

変化しやすいものに依存しないという原則を守ることが大事という話。

特に厄介なのが構造的結合で気をつけるべきで、テストコードは具体化&個別化、プロダクトコードは一般化&抽象化する進化を阻んでしまう要因になる。

組み込みに関して

29章の内容。

組み込みソフトはハードに引っ張られる。

著者はDougのファームウェアの定義を高く評価している。

ソフトウェア:消耗しない長寿の代物
ファームウェア:ハードウェアと共に時代遅れになる

ハードウェアと密結合のコードを書いていた時代のトラウマが激しのか、大いに愚痴が書かれている。

多くのソフトウェアは動作を優先させるがあまりファームウェア化してしまう。

組み込みにおけるクリーンアーキテクチャは、ファームウェアとソフトウェアの間にHALを敷く。まだソフトウェアの中でも更にOSレイヤーの中にOSHALを敷く。

まとめ

具体的なコンポーネントに関する細かい考察の章でした。

重要では有るが個別的な内容で章あたりのページ数が少なく事例が多かったのでサクサク読めたところ。

Ⅴ部の内容はここで終わり。

Ⅵ部からは本質から切り離された側の『詳細』の話。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?