問題タブ [extensible]
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.
design-patterns - 私のシナリオで拡張可能で安全なデータ構造を設計する方法は?
Web サイトを開発していて、ユーザー プロファイル情報を格納するためのデータ構造を構築する必要があります。性別/年齢/学歴などについて記入したのと同じように。私が直面した現在の問題は、拡張可能で安全なデータ構造をどのように設計するかということです。
現在、現在の設計/開発段階から必要なすべてのユーザー プロファイル情報を考慮していない可能性があります。拡張可能なフレームワークを設計して、将来ユーザー プロファイルを簡単に拡張できるようにする方法は? 参照する成熟した (オープン ソースの) ユーザー プロファイル フレームワークはありますか? 現在、各プロパティをデータベース列に保存しています。要件から新しいプロパティが必要になるたびに、列を追加する必要がありますが、あまり便利ではありません。
さまざまなアプリケーションのユーザー プロファイル情報を安全に共有するにはどうすればよいですか? たとえば、app1 にはユーザー プロファイルの一部だけが必要であり、セキュリティ上の理由から、ユーザー プロファイルの一部のみを app1 に公開する必要があります。しかし、app1 が追加のユーザー プロファイル アイテムを必要とする場合に、より多くのアイテムを簡単に公開できるように、十分に柔軟にする必要があります。
C# または中立的なプログラミング言語でのソリューションを歓迎します。
java - Java 用の拡張可能な GUI フレームワーク
私は swing のファンで、拡張可能な GUI を除いて、必要なものはすべて揃っていることがわかりました。小さなパーツをプログラムで拡張可能にすることはできますが、オプション機能をプラグインしたい場合、変更されるすべてのコンポーネントを動的に生成するのは非常に面倒です。
Firefox プラグインの作成に費やした短い期間で、オーバーレイのアイデアに非常に興味を持つようになりました。
同様の概念を持つJava用の何かはありますか?
nhibernate - NHibernate による拡張可能なドメイン モデル
私は現在、ドメイン モデルとリポジトリをアプリケーション プラグインで拡張できるソリューションを設計しています。今、私は以下にリストしているいくつかの問題に出くわしました.
私の最初の問題は、ドメイン モデルを拡張可能にすることです。ここで継承を使用することを考えていましたが、正直なところ、同じドメイン オブジェクトを拡張する複数のプラグイン アセンブリを活用する方法がわかりません。私は、すべてのドメイン オブジェクトを部分的に作成し、プラグインがこのように拡張できるようにすることに傾倒しています。同じドメイン オブジェクトを拡張する複数のプラグインがある場合、プラグインごとに異なる拡張ドメイン アセンブリをロードすることを心配する必要はありません。実行時にマージされたドメイン オブジェクトは 1 つだけです。これに関するアイデアはありますか?
もう 1 つの問題は、NHibernate マッピング ファイルの拡張です。各アセンブリに、それが拡張しているドメイン オブジェクトのマッピング ファイルを埋め込み、NHibernate マネージャーに、コア ドメインで提供されるものの代わりにそれを読み込ませることができます。繰り返しになりますが、問題は、同じドメイン オブジェクトを拡張する複数のプラグインがある場合です。1 つのプラグインを別のプラグイン オーバーライド マッピング ファイルにすることができます。最後の問題に対する解決策はそれほど素晴らしいものではありませんが、拡張する前に使用した元のマッピング ファイルの署名としてプラグイン アセンブリにチェックサムを含めることを考えていました。読み込み中にこのチェックサムを確認し、チェックサムが一致する場合にのみプラグイン マップを読み込むことができます。かなり醜いですが、少なくとも、プラグイン アセンブリで拡張するために使用されるベース マップとは異なるマップをオーバーライドすることはありません。
とにかく、これについて皆さんがどう思うか聞きたいです。ありがとう!
java - Java; 実行時の解釈; プラグインを追加するための戦略
初めての大規模なプロジェクトに着手しています。ロゼッタストーンによく似たプログラムになります。JavaでSwingを使って書かれた外国語学習用のプログラムになります。私のプログラムでは、ユーザーがダウンロードしたコースを選択して学習できるようにする予定です。私は英語のネイティブ スピーカーなので、英語のコースを作成できます。ただし、他の言語を話す人にも、ユーザーが使用するコースを作成できるようにしてほしい (これは、私のプログラムが機能するために不可欠な部分です)。
ユーザーが必要な言語のコースをダウンロードできるようにしたいので、プログラムにハードコーディングすることは問題外です。コースは実行時に解釈する必要がありました。また、他の人に私の作品に協力してもらいたいので (コースを作成するなど)、彼らが簡単にできるようにする必要があります。
これを行うための最良の方法は何ですか?
私が思いついたアイデアは、使用するテキストとサウンドを詳述する単純な xml ファイルを使用して、厳密に空のコース アウトライン (ハードコード) を作成することです。これの欠点は、作成者を非常に制限することです。異なる言語は、異なる部分を学ぶことから始める必要があるかもしれません。
当面の問題とプロジェクト全体に関するアドバイスをいただければ幸いです。関連するリソースや情報へのリンクも大歓迎です。
あなたの時間と労力を考えて、
ジョセフポンド
language-agnostic - 人々が今日使用している拡張可能な言語は何ですか?
ウィキペディアによると:
拡張可能プログラミングは、プログラミング言語、コンパイラ、およびランタイム環境を拡張するメカニズムに焦点を当てたコンピュータプログラミングのスタイルを説明するためにコンピュータサイエンスで使用される用語です。
たとえば、Tclを使用すると、独自の制御構造を作成できます。ここを参照してください。
実際のコードで使用されている拡張可能なプログラミング言語のリストをコンパイルすることに興味があります。あなたの言語の例も提供できればいいのにと思います。
c# - MEF + プラグインが更新されない
すでに MEF Codeplex フォーラムで質問しましたが、まだ回答が得られていないため、StackOverflow を試してみることにしました。誰かが興味を持っている場合は、元の投稿を次に示します (これは単なるコピーです)。
「最初に言っておきますが、私は MEF をまったく初めて使用し (今日発見したばかりです)、これまでのところ非常に満足しています。しかし、非常にイライラする問題に遭遇しました。私は、そのアプリを作成しています。にはプラグイン アーキテクチャがあり、プラグインは単一の DLL ファイルにのみ保存されます (またはメイン アプリにコード化されます)。DLL ファイルは実行時に再コンパイルできる必要があり、アプリはこれを認識して再読み込みする必要があります。プラグイン(これは難しいことはわかっていますが、要件です)これを達成するために、http://blog.maartenballiauw.be/category/MEF.aspxで説明されているアプローチを取りましたあります (WebServerDirectoryCatalog を探します)。基本的な考え方は、「プラグイン フォルダーを監視し、新しい/変更されたアセンブリを Web アプリケーションの /bin フォルダーにコピーし、そこからエクスポートを読み込むように MEF に指示する」ことです。これは私のコードです。これはおそらく正しい方法ではありませんが、ネット上のいくつかのサンプルで見つけたものです。
と
したがって、これはすべて実際に機能し、メインのコードの終了後、実際に IEnumerable 変数が DLL 内のすべてのプラグインで満たされます (コードに従えば、プラグイン/1 にあるので、内の dll を変更できます)。プラグイン フォルダー)。この時点で、プラグイン DLL を再コンパイルして Plugins フォルダーにドロップすると、FileWatcher が変更されたことを検出し、それをフォルダー "2" にコピーすると、directoryCatalog が新しいフォルダーを指す必要があります。これはすべて実際に機能します!問題は、すべてが正しい場所を指しているように見えても、IEnumerable 変数が新しいプラグインで更新されないことです。とても近いですが、まだ遠いです!助言がありますか?この方法で実行することのマイナス面は知っていますが、実際には dll がアンロードされず、メモリ リークが発生することはありませんが、' sa Windows アプリであり、おそらく少なくとも 1 日に 1 回は開始され、プラグインはそれほど頻繁に変更されることはありませんが、アプリを再ロードせずにこれを行うことがクライアントからの要件であることに変わりはありません。ありがとう!
皆さんが提供できるあらゆる助けに感謝します。これを理解できないことに私は頭がおかしくなりました。」
c# - アドイン/アドオン/プラグイン戦略を実装するためのベスト プラクティス
私のアプリケーションは拡張可能でなければなりません。私自身のニーズのために、いくつかのサービスを実装しました。これらのサービスは、IoC/DI の原則に基づいています。したがって、サービスはアプリケーションの概念をカプセル化します。
たとえば、IApplicationService があります。ApplicationService は、現在実行中のアプリケーションに関する情報を公開します。AssemblyInfo などを指定します。もう 1 つの例は、INavigationService です (サンプルの mef.codeplexcom を参照してください)。このサービスは、指定された現在選択されている項目に関する情報であるいくつかのプロパティと、いくつかのイベントを提供します。
「サービスアプローチ」が最も簡単で、アプリケーションの拡張ポイントを簡素化すると思います。したがって、これが本当に最善のアプローチであるかどうかはわかりません。どう思いますか?addins/addons/plugins ... のようなアプリケーションで「拡張ポイント」をどのように実装しますか?
返信ありがとうございます。申し訳ありませんが、私の英語は下手です。;)
android - Android の連絡先データベースを拡張できますか?
Android の連絡先データベースを拡張することは可能でしょうか?
ここから - http://d.android.com/reference/android/provider/ContactsContract.html
それは言います:
ContactsContract は、連絡先関連情報の拡張可能なデータベースを定義します
Extensible は、連絡先アプリケーションに、名前、番号、電子メール、勤務先番号、自宅番号などの通常の値以外のデータを追加できることを示唆しています。
ただし、このページの例 - http://d.android.com/reference/android/provider/ContactsContract.RawContacts.htmlは、連絡先に新しいフィールドを追加する方法ではなく、名前などの標準値を挿入する方法のみを示しています。
さらに、Web で検索しても、連絡先データの拡張に関する情報はあまり見つかりません。
それで、私はそれが可能であるか、または拡張可能が連絡先の他の部分を参照しているのか疑問に思っていましたか?
たとえば、アプリ内で特別な権限を持つ連絡先の追加フィールドを追加して、ユーザーが連絡先を見ると、どのユーザーとアプリを使用できるかがわかるようにしたいと考えています。
これは可能ですか?
dynamic - 学習-拡張性:動的ローディング、およびその他の再コンパイルなしのソフトウェアアップデート
プログラムを書くつもりですが、難問に悩まされています。私は何かを書き始めたくありません、そして、私のプログラムが拡張可能でないことがわかったとき、それからそれをすべて書き直さなければなりません。もう1つの問題は、拡張可能になるようにプログラムの設計をどこから始めればよいかを知るのに十分なプログラミング知識がないことです。
DLL(またはUNIXの場合は遅延ロード)、動的ロード、ランタイムライブラリのロード/デロードなどについていくつか読んだことがありますが、それでも何をする必要があるのか完全には理解できません。サンプルプログラムの例を示します。誰かが私を正しい方向に導いて、私のより大きなプログラムを開始できるようにしてくれれば、私は非常に感謝します。
コマンドを入力できるコンソールプログラム「iAmDog」を作成すると、犬はそれに応じてコンソールへの出力で応答するとします。ここで、このプログラムを作成するときに、犬には「roofroof!」という出力を生成する「bark」という1つのコマンドしかないと仮定します。ユーザーがまだプログラムを実行している間に、ライブラリを編集したり、別の場所でコードを記述したりして、犬のレパートリーに「sit」コマンドを追加できるように、このプログラムを作成するにはどうすればよいでしょうか。
繰り返しになりますが、理想的には、常に実行されているプログラムの機能の更新をコーディングできるようにしながら、ダウンタイムを発生させないか、可能な限りダウンタイムを最小限に抑えることを計画しています。
読んでくれてありがとう!
ラッセル別名SgtPooki
xml - 初心者向けのXML/XSDチュートリアルはありますか?
初心者向けのXSD/XMLに関するチュートリアルを知っている人はいますか?それは物事を簡単に説明しますが、物事を行う方法について非常に詳細に説明していますか?