問題タブ [modularity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
architecture - モデリングのためのアーキテクチャ
さまざまなタイプの多くのアイテムで構成されるシステムのモデルを構築するための一般的な解決策は、各モジュールが特定のタイプを担当するモジュラー システムを作成することです。たとえば、ウォンバットのモジュール WombatModule:IModule があり、IModule インターフェイスには GetCount() (ウォンバットの数を見つける) や Update() (すべてのウォンバットの状態を更新する) などのメソッドがあります。
よりオブジェクト指向のアプローチは、すべてのアイテム タイプのクラスを持ち、すべてのアイテムのインスタンスを作成することです。これにより、クラス Wombat:IItem が Update() のようなメソッドで作成されます (この 1 つの wombat を更新するため)。
コードの観点から見ると、違いはごくわずかですが、実行時間は大幅に異なります。モジュール指向のソリューションは確かに高速です。オブジェクトの作成が少なくなり、すべてのウォンバットに共通する操作の最適化が容易になります。
タイプとモジュールの数が増えると問題が発生します。各モジュールがいくつかのアイテムしかサポートしないため、パフォーマンス上の利点のほとんどが失われるか、モジュールの複雑さが大きくなり、1 つの一般的なタイプのわずかに異なるアイテム (太ったウォンバットとスリムなウォンバットなど) に対応するようになります。または両方。
WombatModule が非表示の Wombat オブジェクトのコレクションを保持し、それらのメソッドをループで実行するだけである場合、少なくとも一度は状態が悪化するのを見たことがあります。
パフォーマンスが長期的な開発ほど問題にならない場合、アイテムごとのオブジェクトの代わりにモジュールを使用するアーキテクチャ上の理由を特定できますか? 私が見逃している別の可能性があるかもしれませんか?
java - モジュラー Web アプリ
私は最近OSGiを調べていて、モジュール式の Java アプリにとっては本当に良いアイデアだと思います。
しかし、心配するコードだけでなく、HTML、画像、CSS などの Web アプリケーションで OSGi がどのように機能するのか疑問に思っていました。
仕事では、複数の「タブ」を持つアプリケーションを構築しています。各タブはアプリの一部です。これは OSGi アプローチを採用することで本当にメリットがあると思いますが、通常のすべての Web アプリケーション リソースを処理する最善の方法が何であるかはよくわかりません。
それが違いを生むかどうかはわかりませんが、JSF とIceFacesを使用しています(ナビゲーション ルールがあり、web.xml ですべての面の構成ファイルを指定する必要があるため、別のレイヤーの問題が追加されます... ああ! )
編集:このスレッドによると、faces-config.xml ファイルは JAR ファイルからロードできます。そのため、JAR ファイルに分割すれば、実際には web.xml を変更せずに複数の faces-config.xml ファイルを含めることができます。
どんな提案でも大歓迎です:-)
java - プラグインによる Java Web アプリケーションの拡張
この Web アプリケーションは、管理不能な混乱にまで成長しました。
私はそれを共通の「フレームワーク」部分 (ページや画像などの Web 要素をまだ含む) と、追加の機能と画面を追加するいくつかのモジュールに分割したいと考えています。このリファクタリングは、サードパーティの拡張機能のプラグイン システムとしても役立つようにしたいと考えています。
すべてのモジュールは、展開の個別の単位である必要があり、理想的には war または jar ファイルです。
いくつかの通常の war ファイルを作成しようとしましたが、Tomcat は (サーブレットの仕様に従って) これらの war ファイルを互いに完全に分離しているため、たとえばクラスを共有できません。
「メイン」クラスパスを表示できるようにするには、プラグインが必要です。
プラグインを一覧表示したり、構成を設定したりできるように、プラグインをある程度制御するには、アプリケーションをメインにする必要があります。
プラグイン自体 (依存関係を指定しない限り) と、同じ Tomcat で実行されている可能性のある他の無関係な Web アプリケーションとの間の完全な分離を維持したいと考えています。
「メイン」アプリケーション URL プレフィックスの下にルートを設定したいのですが、それは必須ではありません。
私は Tomcat を使用したいと思っています (大きなアーキテクチャの変更は、あまりにも多くの人々と調整する必要があります) が、EJB または OSGi の世界でのクリーンなソリューションについても聞きたいです。
ajax - JAR ファイルからのコンポーネント情報は可能ですか?
AJAX Toolkit/Framework
モジュール性に優れた Web アプリケーションをセットアップし、その VIEW に GWT や ZKなどを使用したいと考えています。コンポーネント情報は、さまざまなモジュール - JAR からロードする必要があります。
これを行うことができるのはどれAJAX Toolkit/Framework
ですか?
c++ - C プログラムで外部モジュールを動的にロードしますか?
この問題は以前に解決されたと確信しており、どのように解決されたのか興味があります。実行時にディレクトリの内容をスキャンして機能をロードしたいコードがあります。
具体的には、関数呼び出しを追加できるようにしたいスクリプト エンジンを使用しています。私は、コア エンジンが非常に限定された機能を提供することを望んでいます。ユーザーは、サードパーティのライブラリを介して追加の機能を追加できる必要があります。これは、エンジンがスキャンしてロードする必要があります。これはどのように行われますか?
sql-server-2005 - モジュラー アプリケーション データベース構造
モジュラーアプリケーションを構築しています。構成を通じて、これらのアプリケーション モジュールのオンとオフを切り替えることができます。各モジュールのデータを保持するテーブルに使用するデータベース構造 (mssql2005) を決定しようとしています。私が考えた2つのオプションは次のとおりです。
- すべてのテーブルを 1 つの大きなデータベースに配置し、モジュールに従ってテーブルにプレフィックスを付けます。
- 各モジュールのテーブルを異なるデータベースに分けます。
すべてのモジュールに共通のデータがあるため、ソリューション 2 を使用すると、その共通データ (ユーザーなど) を管理する方法がわかりません。
--
明確にするために、これらのモジュールは個別に販売される可能性があり、構成設定はクライアントによって制御されないものです。これが、それらを別々の表に分割することさえ考えている理由です。
wpf - 初期化後にモジュールのビューをアクティブ化/非アクティブ化するにはどうすればよいですか?
これは、WPF または Prism の複合アプリケーション ガイダンスに関連しています。
私のシェルには「MainRegion」が 1 つあります。私のさまざまなモジュールは、このメイン領域にロードされます。メニューに使用可能なモジュールのリストを表示し、それらを選択してロードできます。メニューをクリックすると、次のようになります。
モジュールの Initialize() メソッドが実行されるため、最初はすべて正常に動作しますが、Module1、Module2、および Module3 が初期化された後、クリックして Module2 を再度ロードしても何も起こりません。
私の質問: 初期化メソッドが実行された後、モジュールをオンデマンドでアクティブ化するにはどうすればよいですか?
ご協力ありがとうございました!
wpf - Prism の ModuleManager を使用したモジュールのロード
この質問は、Codeplex の Prism のサイトにも投稿されました。
オンデマンドでモジュールをロードすることに少し迷っています。皆さんが私を啓発してくれることを願っています。v2 #7を使用しています。
これが私が達成したいことです:
1) 2 つの領域があります。1 つはモジュールをインスタンス化するボタン用 (MenuRegion) で、もう 1 つはモジュールを表示するため (MainRegion) です。MenuRegion で一度に表示できるモジュールは 1 つだけです。
2) モジュールはディレクトリにあり
ます。 3) MenuModule モジュールは MenuRegion に関連付けられており、モジュール名を示すボタンを作成します。いずれかのボタンをクリックすると、対応するモジュールがロードされ、MainRegion に表示されます。
4) 動作:
a) ModuleA ボタンをクリックし、ModuleA を表示します。ユーザーは ModuleA にデータを入力し、データは保存されていない状態のままです。
b) ModuleB ボタンをクリックすると、ModuleB が表示されます。ユーザーは ModuleB にデータを入力し、データは保存されていない状態のままです。
c) ModuleA ボタンをクリックすると、ModuleA が以前に入力された情報とともに表示されます。
私の仮定が間違っている場合は訂正してください。また、他の提案を教えてください。
1) MainRegion は ContentControl である必要があるため、一度に表示できるモジュールは 1 つだけです。
2) ディレクトリで利用可能なモジュールの ModuleInfo を取得するには、カタログの「GrouplessModules」を列挙する必要があると思います
3) モジュールをロードするには、myModuleManager.LoadModule(moduleName) を呼び出す必要があると思います
最後に、私の質問:
1) MenuModuleView のコンストラクターのパラメーターとして moduleManager を使用する必要がありますか?
2) 利用可能なモジュールを列挙するために、MenuModuleView 内からカタログにアクセスできるようにするにはどうすればよいですか?
3) MenuModuleView から、モジュールを列挙しながらボタンを作成し、ModuleInfo をボタンの Tag プロパティに割り当てます。このように、モジュールをロードするためのクリック イベントは 1 つだけです。これは正しいです?それは私には少し回避策のにおいがします...
助けてくれてありがとう!!!
api - モジュール化されたアプリケーションを作成したい場合、最適なリソースは何ですか?
Drupal、Wordpress、Salesforce などの新しい Web プラットフォーム/アプリケーションの私の分析では、それらの多くはモジュール化の概念に基づいてソフトウェアを作成しています。開発者は、「コア」のコードを変更する必要なく、新しい拡張機能やアプリケーションを作成できます。 " 主任開発者によって維持されているシステム。特に、Drupal が「フック」システムを使用していることは知っていますが、それを実装するエンジンや設計についてはあまり知りません。
アプリケーションを作成する道を進み、モジュール化を可能にするシステムが必要な場合、どこから始めますか? これは誰もが知っている特定のデザイン パターンですか? このパラダイムが購読する傾向があるハンドブックはありますか? この種の開発についてゼロから議論しているWebサイトはありますか?
一部の人々が OOP を直接指していることは知っていますが、それはまったく同じことではないようです。
私が計画しているこの特定のシステムは、Salesforce のようなものに傾いていますが、CRM システムではありません。
質問のために、Buy vs. Build の議論は無視してください。その検討はすでに進行中です。現在、ビルド面を研究中です。