- イベント指向プログラミングの機能
- イベントの依存関係
- サービス指向
- イベント
- コントローラ
- トリガー機能
- 時間制御
- イベント駆動型プログラミングの例
- 労働許可
- アクションの開始
- 利点
- より速い処理
- 対話性
- 意思決定のコーディングが少ない
- 柔軟性
- 有効なチケット
- メンテナンスが簡単
- 短所
- 複雑な制御フロー
- 構造化プログラミングを置き換えるものではありません
- 柔軟性
- 用途
- グラフィカル・ユーザー・インターフェース
- 参考文献
イベント - 駆動型プログラミングは、プログラムの制御フローを決定するために、発生したイベントが使用されているコンピュータプログラミングのモデルを指します。
これは一種のテクノロジーやプログラミング言語ではなく、製品開発段階で実装されるアプローチです。基本的に、それはイベント処理ロジックをプログラムの残りのコードから分離します。
このタイプのプログラミングは、適切なイベント処理手順を使用して、通常は関数またはメソッドを呼び出すことにより、イベントを発生時に検出するように設計されています。
理論的には、このプログラミングのスタイルはすべてのプログラミング言語と互換性がありますが、実装方法は異なる場合があります。
一般に、イベントドリブンアプリケーションでは、新しい着信イベントを「リッスン」して、検出されたときに関数呼び出しをトリガーするメインループがあります。したがって、その操作はイベントに焦点を当て、実行する内容と順序を決定します。
イベント指向プログラミングの機能
出典:pixabay.com
イベントの依存関係
プログラムの流れは、ユーザーのアクション、他のプログラムからのメッセージなどのイベントによって与えられ、イベントの処理ロジックをプログラムの残りのコードから分離することで、バッチ処理とは対照的です。
イベント自体は、高レベルのイベントと呼ばれるローン要求の受け入れまたは拒否から、ユーザーがキーを押す(低レベルのイベント)までさまざまです。
サービス指向
サービス指向はほとんど処理能力を消費しないため、コンピューターを遅くすることなくサービス用に設計されたプログラムを作成するために使用されます。また、サービスは通常、オペレーティングシステムのバックグラウンドで実行されます。
イベント
これは、プログラムの実行中に発生し、システム側で何らかのアクションを必要とする状態です。各イベントは性質が異なり、一部のプログラムでは特定の情報を取得して表示する必要があり、他のイベントではいくつかの計算と状態の変更を開始する必要があります。
イベントには、マウス、キーボード、ユーザーインターフェイス、およびそれらが発生したときにプログラムでトリガーされるアクションが含まれます。つまり、ユーザーは、マウスボタンのクリック、キーボードを使用したボタンの選択など、プログラム内のオブジェクトを操作する必要があります。
コントローラ
イベントに反応するためにアクティブ化されるのは、プログラムの特定の単位です。つまり、特定のイベントがトリガーされたときに特定のアクションを実行する関数またはメソッドの一種です。
たとえば、ユーザーがボタンをクリックするとメッセージが表示され、ユーザーがそのボタンをクリックするとメッセージが再び閉じるボタンが考えられます。
トリガー機能
これらは、特定のイベントが発生したときに実行するコードを決定する関数です。イベントが発生したときに使用するイベントハンドラーを選択するために使用されます。
時間制御
これは、特定の時間に実行される特定のコードです。これは、実行する事前設定タスクであることを意味します。
Windows Updateは制御された時間の例であり、ユーザーはいつ更新するか、いつ更新を確認してダウンロードするかを設定できます。
イベント駆動型プログラミングの例
イベント指向のプログラムは非常に一般的になっています。最も顕著な例には、ワープロ、描画ツール、スプレッドシートなどがあります。
最新のメッセージングシステムのほとんどは、イベント駆動型のパターンにも従いますが、大規模なWebサイトは、スケーラブルでイベント駆動型の分散型アーキテクチャを使用しています。その他の例は次のとおりです。
-キーが押されました(テキストエディター)。
-新しいタスクカレンダーがすべてのスタッフに配布できるようになりました(管理システム)。
-HTMLメッセージ(Webサーバー)を受信しました。
-違法取引パターンが検出されました(不正検出)。
-コンピュータゲームの車が別の車と衝突する(レーシングゲーム)。
-ロボットが目的地に到着しました(リアルタイムの倉庫管理)。
労働許可
イベント駆動型プログラミングで使用されるイベントの実用的な例としては、システムで労働許可を申請する従業員が挙げられます。この従業員がリクエストを発行すると、承認のためにマネージャーに送信される通知がアクティブになります。
マネージャは、追加のセッションを開始する必要なしに、要求の詳細を表示し、それを承認または拒否し、システムで更新できます。
アクションの開始
イベント指向プログラミングの基本に従うプログラムのアクションは、イベントによって開始されます。
-ハードウェア。
-予定されています。
-実行時間の。
-オペレーティングシステムから。
-プログラムのGUIとの対話を通じて与えられるユーザーの指示によってアクティブ化されます。
最も単純なモードでは、プログラマーは「特定のイベントが発生するとどうなるか」という質問に答える必要があります。
次の疑似コードルーチンは、非常に単純なスケジューラがどのように機能するかを示しています。これは、何らかの終了条件が発生するまで継続的に実行されるメインループで構成されます。
イベントが発生すると、スケジューラはイベントタイプを決定して適切なイベントハンドラを選択するか、適切なイベントハンドラが存在しない場合はイベントを処理する必要があります。
利点
より速い処理
複数のプロセッサとイベントハンドラ間でデータが伝播するため。
対話性
これは、イベント指向プログラミングの最も重要な利点であり、ユーザーエクスペリエンスを向上させます。今日のユーザーは積極的に参加し、受動的な消費者であり続けたいと考えています。
したがって、イベントベースのプログラムは、事前に設定された制限なしに、ユーザーが自分の体験をナビゲートし、さまざまなオプションを探索するのに役立ちます。
意思決定のコーディングが少ない
このプログラミングへのアプローチは、従来のアプリケーションよりもコーディングに必要な決定が少ないため、すべての関係者にとって多くの利点があります。
多くのイベントは、考えられるすべてのシナリオの高度なコーディングではなく、ユーザーアクションによって決定されます。従来のアプリケーションは機能しますが、イベント駆動型アプリケーションは反応します。
柔軟性
これは、クラウドコンピューティング、マイクロサービスなどの最近のソフトウェアエンジニアリングの傾向、および柔軟な分散システムでのスケーラビリティの向上のニーズに完全に適しています。
有効なチケット
無効な値を持つエントリの可能性を排除します。従来のアプリケーションは質問をし、ユーザーが答えを入力できるようにします。イベント駆動型アプリケーションは通常、ボタンまたはドロップダウンメニューとして、一連のオプションを提供します。
メンテナンスが簡単
モジュールを追加または削除するときに既存のコードを修正および調整する必要がなくなります。このような調整に関係なく、システムはスムーズに動作し続けます。
したがって、このプログラミングは、構造に基づくのではなく、一連の内部および外部イベントに基づく制御フローを持つアプリケーションに適しています。
短所
複雑な制御フロー
このプログラミングへのアプローチは、小さくて単純なアプリケーションには最適なオプションではありません。これは、行わなければならない努力が賢明であることが判明しないためです。
イベント駆動型アプリケーションを開発すると、システムの設計と配信が複雑になります。これは、従来のソフトウェアアーキテクチャが、イベント駆動型の相互作用ではなく、要求ベースの相互作用に基づいているためです。
さらに、絶え間なく動的なイベントループが必要なため、多くの準備も必要です。
構造化プログラミングを置き換えるものではありません
イベント指向プログラミングは、従来の構造化プログラミングに取って代わるものではなく、それを補完するだけであることに注意してください。
従来のプログラミング手法は、プログラム全体を記述するために不可欠であり、イベント駆動型のコーディング要素は、GUIの設計に役立つだけです。
柔軟性
議論の余地のない利点であるイベント指向のスケジューリングの柔軟性も、特定のシナリオでは詐欺に変わります。それらの兆候の1つは、変更があり、システム全体に対する制御が弱い場合のイベント指向プログラムの予測不能性です。
プログラマーは、一部の機能モジュールの削除や追加などの摩擦のない調整を行うためにイベント駆動型プログラミングを使用することを好みますが、これらの調整は機能の予期しない変更につながる可能性があります。
従来のプログラミングでは、システムはこれらの操作上の異常を非常に迅速に発見し、それらの原因に関するレポートをプログラマーに提供します。イベント駆動型プログラミング環境では、そのような誤動作の検出はそれほど速くなく簡単です。
用途
イベント駆動型プログラミングは、一種の言語というよりもアプローチであることが判明しているため、イベントベースのアプリケーションは、任意のプログラミング言語で作成できます。
イベント駆動型プログラミングは、ソフトウェア開発サービスの世界を変革し、今日の開発に不可欠な要素になりつつあります。その普及はWindowsと視覚環境の普及によって刺激されました。
イベント駆動型の状況のケースは、特定の時間に特定のタスクを実行するように設定されたウェイクアップタイマーに似ています。
グラフィカル・ユーザー・インターフェース
このスケジューリングアプローチはイベント中心です。最も一般的なアプリケーション領域には、グラフィカルユーザーインターフェイス(GUI)の作成、サーバーアプリケーション、マルチプレイヤーゲームの開発などがあります。
従来のプログラムはイベントのフローを確立し、ユーザーオプションを制御しますが、このより革新的なプログラミングはGUIの作成に役立ちました。
GUIは、ドロップダウンメニュー、ウィンドウ、ボタン、およびチェックボックスの形式で複数のオプションをユーザーに提供することにより、人間とコンピューターの対話を変更しました。
したがって、コンピュータで設定されたアクションの所定の順序に従うのではなく、ユーザーは自分で多くの使用可能なコマンドの1つを選択できます。
このプログラミングは、グラフィカルユーザーインターフェイスに広く適用されているだけでなく、JavaScript Webアプリケーションなど、ユーザー入力に応じて特定のアクションを実行するアプリケーションにも広く適用されています。
参考文献
- Raspal Chima(2018)。ソフトウェア開発におけるイベント駆動型アプリケーション。ブルーベリーコンサルタント。出典:bbconsult.co.uk。
- 定足数(2020)。アプリの構築-レッスン1:イベント駆動型プログラミングの概要。quorumlanguage.comから取得。
- マーガレット・ラウズ(2012)。イベント駆動型アプリケーション。Techtarget。取得元:searchitoperations.techtarget.com。
- UKエッセイ(2018)。イベント駆動型プログラミング機能。ukessays.comから取得。
- Souvik Banerjee(2019)。イベント駆動型プログラミング:なぜ今流行っているか?RS Websols。rswebsols.comから取得。
- Techopedia(2018)。イベント駆動型プログラム。取得元:ceilingpedia.com。
- テクノロジーUK(2020)。イベント駆動型プログラミング。テクノロジーuk.netから取得。