8章意味のあるモデルで複雑さを扱う

複雑さは、成功したすべてのソフトウェアシステムが持つ必然的な副産物だ。システムの利用者が多くなるにつれ、可用性やスケーラビリティ、パフォーマンスの限界は押し広げられる。そして、新しい機能は、収まりさえすれば、どこであってもボルトで固定されて押し込まれる。ソフトウェアが育つにつれ、システムの大きさは開発チームを圧倒するようになる。絶え間ない用心がなければ、ソフトウェアシステムは最終的に自らの成功の犠牲となる。

希望がすべて失われたわけではない。複雑さが醜い頭を上げたとき、それを抑制するための選択肢がある。要求を変更したり、コードを切り取ったりすることで、ソフトウェアを再び小さくできる。大きく複雑なものを、予測や管理が容易な小さいものへと分割できる。詳細を隠蔽し、粗い粒度の抽象概念の観点からソフトウェアを考えることもできる。

「1.2.1 基本構造を定義する」では、アーキテクチャが要素と関係からなる構造物によって構成されることを学んだ。この章では、それらの基本的な構成要素を使用して、設計を見通すのに役立つ、意味のあるモデルを作成する方法を学んでいく。

8.1 アーキテクチャを見通す

頭の中にずっと保持しておける情報の量は有限だ。長年にかけて、私たちの仲間は脳の限界に対処する方法を見いだしてきた。一つは、他の人と協働することで問題解決を超並列操作に変える方法だ。もう一つは、知識の塊を表す新しい抽象概念を作成する方法だ。これらの手法(協働と抽象化)は、私たちがアーキテクチャについて考え、分析し、理解するために必要なものを提供する。 ...

Get Design It! ―プログラマーのためのアーキテクティング入門 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.