たまたま昨日本屋で見かけたので、オライリーのソフトウェアアーキテクチャの基礎を買いました。 まだ1章しか読み終わっていませんが、今のところおもしろいです。
読書メモを書きながら読んでいるのですが、1章ではざっと次のようにメモしました。
イントロダクション
- ソフトウェアアーキテクチャ自体の定義が業界でよく定まっていない。
- ソフトウェアアーキテクトの役割は、広範囲の能力を活用するアーキテクチャの台頭によって、拡大していっている。
- 「ソフトウェアアーキテクチャは、一度実装すると変更が難しい」といった考えは時代遅れ
ソフトウェアアーキテクチャ
- システムの構造:アーキテクチャスタイルの種類
- アーキテクチャの特性:可用性、信頼性、スケーラビリティ、デプロイ容易性 ...
- アーキテクチャ決定:システムをどのように構築すべきかのルールを定める
- 設計指針:設計指針として、望ましいアプローチに関するガイドを提供する
ソフトウェアアーキテクトの主な役割
- アーキテクチャ決定を下す
- 重要なのは、技術的な選択を指定するのではなく、ガイドすること
- アーキテクチャを継続的に分析する
- アーキテクチャや現在の技術環境を継続的に分析し、その上で改善案を提案する
- 最新のトレンドを把握し続ける
- アーキテクトが下す決定は、長い間影響を与え、変更が難しいものであることが多い。主要な業界の動向に沿うことは、アーキテクトが先を見据えた適切な判断を下すのに役に立つ。
- 決定の順守を徹底する
- 多様なものに触れ、経験している
- 今日ほとんどの環境は異種混合のものとなっている
- 事業ドメインの知識を持っている
- 知識がなければ、アーキテクトはステークホルダーやビジネスユーザーとうまくコミュニケーションがとれない
- 対人スキルを持っている
- アーキテクトは、アーキテクチャの実装を通じて開発チームをリードすることが期待されている
- 政治を理解し、かじ取りする
- コストや作業量の増加といった面から、アーキテクトが下すほとんどの決定は反発される。
- アーキテクトが行う決定は、広範で重要な決定とみなされるため、正当性を示すために戦わなくてはならない。
ソフトウェアアーキテクチャの法則
- 第一法則:ソフトウェアアーキテクチャはトレードオフがすべてだ。
- 第二法則:「どうやって」よりも「なぜ」の方がずっと重要だ。
おわりに
本の内容としては、現代におけるソフトウェアアーキテクトの基礎知識を再定義する意図があるようです。
ソフトウェアアーキテクチャは過去の名著がいくつも思い浮かぶ分野ですが、変化の激しい現在ではアーキテクチャの考え方もどんどん変わっていきますので、良い機会なのでキャッチアップしていきたいです。