18章イベント駆動アーキテクチャ

拡張性はコードベースのどのレベルでも重要だ。コードのレベルでは関数やクラスに柔軟性を持たせるために拡張性を取り込む。抽象のレベルではコードベースのアーキテクチャで同じ原則を適用する。アーキテクチャとは、ソフトウェアの設計方法を支配する高レベルのまとまったガイドラインと制約のことである。現在、過去、未来のすべての開発者に影響を与えるビジョンだ。これからの2章では、保守性を向上させるアーキテクチャの例を2つ示す。第Ⅲ部で学んできたことはすべてアーキテクチャにも当てはまる。優れたアーキテクチャは、依存関係をうまく管理し、拡張性とコンポーザビリティを向上させる。

この章では、イベント駆動アーキテクチャについて学ぶ。イベント駆動アーキテクチャは、イベント、すなわちシステム内の通知を中心に据える。コードベースを切り離し、新機能の追加やパフォーマンス向上のためにシステムを拡張するすばらしい方法である。イベント駆動アーキテクチャに従えば、既存システムへの影響を最小限に抑えながら新機能を簡単に導入できる。まず、イベント駆動アーキテクチャがもたらす柔軟性について説明する。次に、単純イベントとストリーミングイベントという2種類のイベント駆動アーキテクチャを説明する。両者はよく似ているが、微妙に異なるので使い分けることになる。

18.1 仕組み

イベント駆動アーキテクチャに焦点を当てると、刺激に対する反応を中心に展開することがわかる。キッチンタイマーが鳴ったらオーブンから鍋を外すとか、スマートフォンへの通知が届いたら玄関のドアを開けて配達された料理を受け取るといった刺激への反応に終始する。イベント駆動アーキテクチャでは、このモデルを表現するようにコードを設計する。イベントプロデューサ ...

Get ロバストPython ―クリーンで保守しやすいコードを書く 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.