19章アーキテクチャ決定

アーキテクトに求められることの1つに、アーキテクチャ決定がある。アーキテクチャ決定とは通常、アプリケーションやシステムの構造に関わる決定だ。しかし、何らかの技術的な決定が、アーキテクチャ特性に影響を与える場合には、それもアーキテクチャ決定に含まれる。どのような文脈であっても、優れたアーキテクチャ決定は、開発チームが適切な技術的選択を行うための指針となる。アーキテクチャ決定を下す際は、関連情報を十分に集め、妥当性を示し、文書化し、そして適切なステークホルダーに決定を効果的に伝えなくてはならない。

19.1 アーキテクチャ決定に関するアンチパターン

アーキテクチャ決定を下すには技芸が求められる。驚くことではないが、アーキテクチャ決定を下す際に現れるいくつかのアンチパターンが存在する。プログラマーのAndrew Koenig(https://oreil.ly/p9i_Y)は、アンチパターンのことを「始めたときは良いアイデアのように見えるが、トラブルにつながるもの」と定義している。また、アンチパターンには「ネガティブな結果を生む、繰り返されるプロセス」という定義もある。アーキテクチャ決定を下す際に現れがちな3つの主要なアンチパターンに、資産防御アンチパターングラウンドホッグデーアンチパターンメール駆動アーキテクチャアンチパターンがある。これら3つのアンチパターンは、通常、資産防御アンチパターンの克服がグラウンドホッグデーアンチパターンに繋がり、グラウンドホッグデーアンチパターンの克服がメール駆動アーキテクチャアンチパターンに繋がるという、段階的な流れを持っている。アーキテクトとして効果的で適切なアーキテクチャ決定を下すには、これら3つのアンチパターンをすべて克服する必要がある。 ...

Get ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.