JavaScriptのイベント駆動型アーキテクチャの高度なサブスクリプション

JavaScriptアプリケーションを構築するための最も一般的な方法の1つは、優れた柔軟性を提供し、システムモジュールを相互に可能な限り独立させることができるイベント指向のアプローチです。 このパラダイムは人気を博しており、多くのフレームワークの一部になることはめったにありません。 しかし、原則として、アプリケーションの成長に伴い、イベント/サブスクリプションの数も増加し、プロジェクトの新しい従業員の適応は言うまでもなく、開発者がそれを管理および監視することはより困難になります。



イベント駆動型のjsアーキテクチャでイベントを管理し、Mediatorテンプレートの最大の欠点の1つを解決するモジュールであるCapoは、トリガーとサブスクライバーの不確実性です。



実際のプロジェクトで同様の問題に直面したため、最初は標準の開発ツールである検索を使用しました。 しかし、時間が経つにつれて、イベントの数が増加し、イベントの「ソース」を見つけることがますます難しくなり、「loners」(誰も聞いたり送信したりしないイベント)を管理することが単に不可能になりました。 開発プロセスは日々複雑になり、プロジェクトへの新しい人々の出現で、それはまったく負担になり始めました。



お気付きのように、「ギター」のテーマ(hi mediator.js)からそれほど遠くなく、私たちの発案者をCapo(capoを参照)と名付けました。 Capoはメソッドまたはアプローチではなく、既製のヘルパーであり、npmモジュールとSublime Textのプラグインの形で具体化されています。 彼は何ができますか? メディエーターパターンの問題に戻りましょう。



状況を想像してみてください。イベントに基づいて構築されたアーキテクチャを使用する新しいプロジェクトに来ます。 すべてのイベントチェーンとそれらへのサブスクリプションを完全に追跡するのにどれくらいかかりますか? 実践が示すように、この職​​業は多くの時間がかかり、多くの喜びをもたらさない。



このプロセスを簡素化するために、すべてのイベントの検索を統合し、結果をインタラクティブなレポートの形式で開発者に提供することにしました。 Npm Capoモジュールは、指定されたフォルダーからすべてのファイルを検索し、すべてのトリガーとサブスクライバーのリンクを見つけて追跡します。 その後、次の形式のhtmlレポートを(デフォルトで)生成します。





ライブデモ



左側には、見つかったイベントをナビゲートするためのメニューがあり、右側には、ファイル、行、およびコンテキストを示すトリガーとサブスクライバーがあります。 奇妙なイベントセクション-サブスクライバーまたはトリガーがなく、大きなトラブルを引き起こす可能性のあるイベント。 このモジュールは、mediator.js、Backbone.js、node.js EventEmmiter、またはパブリッシュ/サブスクライブインターフェイスを提供するその他のオブジェクトを使用するすべてのプロジェクトに適しています。 Capoには、非常に便利になる可能性のある多くの追加機能もあります。 そのため、たとえば、レポートを送信して印刷したり、コンソールに直接印刷したり(capo-cli)、Capo自体をgrunt(grunt-capo)のビルドステップとして追加したり、スタブサブスクリプションを生成してイベントを「スパイ」したりできます。プロジェクト(spy-generator)で見つかったすべてのイベントに対して。



さらに便利にするには、これらの機能を開発環境に統合する必要があります。 そのため、Sublime Text 3には別のプラグインが追加されました。このプラグインは、イベント駆動型のjsアーキテクチャを使用してアプリケーションを直接開発するときに作業を簡単にするように設計されています。

インストール後、キーの組み合わせを使用して検索を開始し(デフォルトではAlt + D)、クイックパネルを使用して目的のファイルを選択します。 プラグインはそれを新しいウィンドウで開き、見つかったイベントのある行を強調表示します。







Capoを作成するとき、私たちは主に自分自身の開発プロセスを促進し、プロジェクトの新しい人がアプリケーションのアーキテクチャをすばやく理解できるように努めました。 Capoがイベントの制御を維持し、プロジェクト内のトリガーとサブスクリプションの不確実性という永遠の問題を解決するのに本当に役立つことを願っています。



Capoモジュールのソースコードと説明は、次のリンクにあります。




All Articles