1章イントロダクション
「ソフトウェアアーキテクト」という職種は、世界中で最高の職業リストの上位に入っている。では、診療看護師やファイナンスマネージャーといった、そうしたリストに載っている他の職業には明確なキャリアパスが存在しているのに、なぜソフトウェアアーキテクトには明確なキャリアパスがないのだろうか?
その理由の1つに、ソフトウェアアーキテクチャ自体の定義が業界でよく定まっていないことが挙げられる。基礎講座を教えていると、受講者から「ソフトウェアアーキテクトの仕事を簡潔に定義してほしい」とよく言われる。しかし、私たちはそれを頑なに断ってきた。そうしているのは私たちだけじゃない。Martin Fowlerも、「Who Needs an Architect?」(https://oreil.ly/-Dbzs)という有名な記事で、それを定義しようとはせず、代わりに次の有名な引用を残している。
アーキテクチャとは(それが何であれ)重要なものだ。
Ralph Johnson
しかしながら、どうしてもソフトウェアアーキテクチャを定義せざるを得なくなった際、私たちはやむなく図1-1のマインドマップを作成した。このマインドマップは、完全な定義とは程遠いものの、ソフトウェアアーキテクチャの範囲を示している。私たちのソフトウェアアーキテクチャの定義についても、この後すぐに説明する。
2つ目の理由に、このマインドマップが示すように、ソフトウェアアーキテクトの役割が非常に広範囲にわたり、拡大を続けているということが挙げられる。10年前には、ソフトウェアアーキテクトは、モジュール性、コンポーネント、パターンといった、アーキテクチャにおける純粋に技術的な側面だけを扱っていればよかった。しかし、ソフトウェアアーキテクトの役割は、マイクロサービスのような、より広範囲の能力を活用する新しいアーキテクチャスタイルの台頭によって、拡大していっている。アーキテクチャと他の要素との交わりについては、 ...
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.