3章進化的アーキテクチャ:テスト容易性とデプロイ可能性でアーキテクチャを導く

Dave Farley

ソフトウェアアーキテクチャとは大切なもの、そして儚いものです。システムのスケーラビリティ、パフォーマンス、レジリエンスといった、システムの重要な特性を決定するものという意味でソフトウェアアーキテクチャは大切であり、その判断が曖昧で主観的なものであることが多いという点でソフトウェアアーキテクチャとは儚いものです。

アーキテクチャの説明や文書は、私たちがアーキテクトとして構築するシステムにおける観光マップのように機能します。それらは、変更される可能性の高いシステムの詳細を細かく語りすぎることなしに、全体を把握可能にします。ユーザーや顧客のニーズや要求について深く学ぶことで、私たちはどのアーキテクチャ特性をどの程度サポートしなければならないかを見定めていけます。

ソフトウェアアーキテクチャに関わる仕事をしていると、次のような疑問を持つことがあるかもしれません。「最初はシンプルなシステムで始めたとして、需要が急激に伸びたときにどう対処すればよいのだろうか?」「需要が伸びない場合はどうすればよいのだろうか?」「パフォーマンス、セキュリティ、アップタイムに対する要求が高まってきているときに、どのように対処すればよいのか?」「新しい需要や不測の事態に対応できるように、進化しやすい状態にシステムを維持するにはどうすればよいか?」「予期せぬ変化を可能にしつつ、過度な未来対策で開発プロセスを阻害しないようにするにはどうすればよいか?」。

本章では、その答えは防御的なアプローチにあると主張します。ソフトウェアアーキテクトは、作るシステムの複雑さを管理する手法を設計し、学ぶ必要があります。

3.1  ...

Get ソフトウェアアーキテクチャメトリクス ―アーキテクチャ品質を改善する10のアドバイス 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.