問題タブ [modularization]
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.
spring - モジュラー Java Web アプリケーション
多くの機能とクラスを持つ Java および Spring フレームワークに基づくリッチ Web アプリケーションがあります。最近、より良いものにするためにモジュール性を提供してみませんか?
モジュール性とは、認証されたユーザーがプラグインや拡張機能を使用して貢献できる Web アプリケーション内のセクションを提供することです。joomla、wordpress、その他の cms とまったく同じです。
各パーツを別のパーツに分離し、ユーザーがプラグインをアップロードしている間、システム全体とコアを分解しないようにしたいと考えています。また、システムが悪意のあるプラグインを受け入れないように、バックエンドにプラグイン/拡張テスターを提供したいと考えています。
システムは、コアを損なうことなく各プラグインと拡張機能をアンインストールできる必要があります
この機能をどのように作成すればよいのでしょうか? また、どこから始めなければならないのでしょうか?
php - CodeIgniter モジュール拡張と i18n ライブラリ
私は Jérôme Jaglale ( http://maestric.com/en/doc/php/codeigniter_i18n ) による CodeIgniter i18n ライブラリを使用しており、これは私のプロジェクトに最適です。
しかし、個別のモジュールを作成する必要があるため、最近 CodeIgniter Modular Extensions ( https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc ) を追加したところ、ナビゲーションが壊れました。
この問題の解決方法を教えてください。i18n ライブラリと Modular Extensions の両方を使用したいと考えています。
i18n ライブラリがサイト URL に言語セグメントを追加するため、アプリケーション ナビゲーションが機能しないと思います。私の場合、私の URL は localhost/index.php/en/home で、モジュラー拡張機能を追加した後、ナビゲーション/リンクが機能しなくなります。
前もって感謝します。
c++ - C++ のモジュラー プログラミングでの取得可能なログ記録
私の仕事は基本的に、既存のシステム用の特定のモジュールを構築することでした。モジュールは正常に動作しますが、コード内にログ エントリを配置する必要があります。これは最終システムのモジュールにすぎないため、ロギング レベルはプログラムの外部で設定する必要があり (これは簡単に解決できます)、メイン モジュールは、コマンド ラインにログインした場合でも、モジュールのログ エントリにプログラムで到達できる必要があります。またはファイルが無効になっています。この機能を備えた、または簡単に拡張できる既存のロギング ライブラリを知っていますか?
node.js - AngularJS アプリケーション / プラグインをモジュール化する方法
Grails (REST-API、AngularJS の一部、MongoDB、Tomcat、Spock、いくつかのプラグイン) から Node.js + Angular.js への移行に関する (ソフトウェア) アーキテクチャに関する質問がいくつかあります。おそらく、Grails プロジェクトの最初の構造について説明する必要があるので、ここで説明します。
いくつかのプラグインで構築されたメインの Grails アプリケーション (いくつかの他のアプリケーションに加えて) があります。これらのプラグインはそれぞれ単独で実行できます。つまり、独自の UI、個別のテンプレート、サービス、コントローラー、ルート、テストなどがあります。また、さまざまなリポジトリでホストされています。これは、Grails プラグインのメカニズムによって行われます。利点は、テストの労力が少なくて済むこと、コンパイル時間の短縮、モジュール化、単一の責任などです。
それでも、コンパイルとテストにかかる時間は非常に高くつきます。また、API がテンプレート/ビューの一部を提供するという事実も好きではありません。バックエンド API を「バックエンド API にするだけ」、フロントエンドを「フロントエンドにするだけ」にしたいと考えています。したがって、各 AngularJS アプリケーション/プラグインは独自のビュー、ルート、サービスなどを提供します。ただし、他のプラグインに依存する場合もあります。
だから私が達成したいのは次のとおりです:
- いくつかのプラグインを含む 1 つの主要な AngularJS アプリケーション (プラグインは、レポート ジェネレーター、ゲストブックなどのようなものであり、アプリケーションの単一の独立した部分について言えば、特定のルートまたはページのごく一部を使用します) )。
- 各プラグインは、スタンドアロンの AngularJS アプリケーションでなければなりません (おそらく、開発中に grunt などを介して実行可能です)。UI 開発者がバックエンド アプリケーション全体を起動する必要がないように、さらに JavaScript のみで機能テストを実行できるようにします。
- REST を介した通信のみ。フロントエンドは API からすべてのデータを取得する必要があります
- 各プラグインは単独でテスト可能でなければなりません
- プラグインが動作するために他のプラグインが必要になる場合があります
- メインの index.html (および app.js?) は、バックエンド (API) の残りの部分から切り離された Nginx サーバーによって提供される場合があります。
頭の中に具体的なイメージがありますが、このアーキテクチャをセットアップする方法に苦労しています。
Grails では、プラグイン メカニズムは、プラグインに依存する設定 (URL マッピング、依存関係など) を、それらが含まれる/注入されるメイン アプリケーションにマージします。これは、AngularJS でも達成したいことです。そう:
- AngularJS にも同じようなメカニズムはありますか?
- 各プラグインのルートをメイン アプリケーションに提供/マージするにはどうすればよいですか?
- アプリケーションとプラグインの依存関係を宣言するにはどうすればよいですか?
- ビルド プロセスに役立つツールは何ですか?
- プラグイン リソース (css/less ファイル、ビュー、サービスなど) の遅延取得を確立する方法は?
- アプリケーションが起動時にプラグインのすべてのリソースを提供するのを防ぎます (起動時にルートが必要だと思います)
これは単なるやり方の質問ではないので、重要な部分が欠けていたり、いくつかの部分が十分に明確でない場合は、申し訳ありません。質問していただければ、それぞれの質問に詳しくお答えします。
javascript - モジュール化の下でデータを隠すのに役立つ JavaScript 連結子?
以前、JavaScript のモジュール化でデータが隠蔽されるという問題に遭遇しました。以下のリンクを参照してください。
モジュールパターン - 1 つのモジュールのコードを異なる js ファイルに分割する方法は?
問題を説明するには、次の例を参照してください。私の目標は、長い js ファイルを 2 つのファイルに分割することですが、一部の関数はいくつかのプライベート変数にアクセスする必要があります。
first.js:
second.js:
子は親にアクセスできないため、これは機能しません。解決策の 1 つはparentPrivate
公開することですが、私の場合は受け入れられません。
以前の質問の1つに答えた@Louisを引用:
「子供はアクセスできるが、外部のパブリックにはアクセスできない (つまり、保護された) フィールドを持つことはできません。それを達成する方法はありますか?」
モジュール化が必要な場合 (つまり、子を親とは別にコーディングしたい場合)、JavaScript でこれが可能であるとは思えません。子と親を同じクロージャで動作させることは可能ですが、これはモジュール化されません。これは、RequireJS の有無にかかわらず当てはまります。
問題は、親と子が同じクロージャー内にないことです。したがって、ファイルを同じクロージャーに入れるライブラリを作成することは理にかなっていると思いますか?
何かのようなもの:
もちろん、名前空間などを指定するために、より多くの引数を受け取ることができます。これは、RequireJS から得られる機能と同じではないことに注意してください。RequireJS はモジュール化を実現しますが、この連結子はモジュール化の条件下でのデータの隠蔽に焦点を当てています。
では、上記のいずれかが理にかなっていますか? それとも、いくつかの重要なポイントを見逃していますか? どんな考えでも大歓迎です。