リアクティブプログラミングとは?
りあくてぃぶぷろぐらみんぐ
リアクティブプログラミングとは、データの変化やイベントの流れを宣言的に記述し、変更が自動的に伝播するプログラミングパラダイムです。
リアクティブプログラミング(Reactive Programming)とは、データストリームやイベントの変化に反応(React)して処理が自動的に実行されるというプログラミングスタイルです。命令型プログラミングが「いつ・どのように処理するか」を逐次記述するのに対し、リアクティブプログラミングは「何が変化したら何が変わるか」というデータの依存関係を宣言的に定義します。
リアクティブプログラミングの中心的な概念はオブザーバブル(Observable)です。オブザーバブルはイベントや値の非同期ストリームを表し、サブスクライバ(購読者)はそのストリームを購読して変化に反応します。ストリームにはマップ・フィルタ・マージ・圧縮などの演算子を連鎖して複雑な処理パイプラインを宣言的に構築できます。
主なライブラリ・フレームワークとして、
- RxJS(Reactive Extensions for JavaScript):Angular標準採用、フロントエンド非同期処理の定番
- ReactiveX(Rx)シリーズ:Java(RxJava)・Swift(RxSwift)・Python(RxPY)など多言語展開
- Project Reactor:Spring WebFluxの基盤となるJava向けリアクティブライブラリ
- Akka Streams:ScalaのAkkaフレームワークにおけるリアクティブストリーム実装
UIイベント処理、WebSocketによるリアルタイム通信、マイクロサービス間の非同期連携など、高い並行性と応答性が求められる場面で特に力を発揮します。リアクティブシステムという設計思想(Reactive Manifesto)とも関連し、応答性・弾力性・回復性・メッセージ駆動の4原則が定義されています。
使い方・例文
スプレッドシートのセルに数式を入力すると、参照元のセルが変わるたびに結果が自動更新されますが、これはリアクティブプログラミングの直感的な例です。RxJSではボタンクリックのイベントストリームをそのまま購読し、フィルタや変換を挟んでUIを更新するコードが書けます。
この用語をシェア
最終更新: