問題タブ [design-decisions]
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.
c# - 繰り返しプロパティの設計パターン
複数のオブジェクトを管理するDownloadManager
クラスがあります。DownloadItem
それぞれDownloadItem
に や のようなイベントがProgressChanged
ありDownloadCompleted
ます。通常、すべてのダウンロード アイテムに対して同じイベント ハンドラーを使用する必要があるため、各DownloadItem
.
したがって、使用するパターンを決定する必要があります。
1 つ
/li>DownloadItem
をテンプレートとして使用し、必要に応じて複製します代わりにイベント ハンドラを設定し、エンキュー
/li>DownloadManager
されたそれぞれにイベントをコピーしますDownloadItem
。または、ある種の工場を使用します
/li>
あなたは何をお勧めします?
c - プラグインフレームワークを実装するための最良の方法-DLLは唯一の方法(C / C ++プロジェクト)ですか?
序章:
私は現在、C / C ++でドキュメント分類ソフトウェアを開発しており、分類には単純ベイズモデルを使用します。しかし、私はユーザーが望む(または将来的に望む)任意のアルゴリズムを使用することを望んでいたので、メインアプリ@アプリの起動に接続されるプラグインとしてアーキテクチャのアルゴリズム部分を分離しました。したがって、どのユーザーもプラグインとして独自のアルゴリズムを記述し、それを私のアプリで使用できます。
問題文:
これを開発する方法は、ユーザーが使用したい各アルゴリズムをDLLファイルにして、特定のディレクトリに配置することです。そして最初に、私のアプリはそのディレクトリ内のすべてのDLLを検索し、それらをロードします。
私の質問:
(1)悪意のあるコードがDLLとして作成され(プラグインフレームワークによって義務付けられているのと同じ機能を持つ)、プラグインディレクトリに配置された場合はどうなりますか?その場合、私のアプリはプラグインと見なしてそれを選択し、その関数を呼び出すため、悪意のあるコードによってアプリ全体が簡単にダウンする可能性があります(最悪の場合、アプリが悪意のあるコードランチャーになる可能性があります!!!) 。
(2)プラグインデザインパターンを実装するために利用できる唯一の方法はDLLを使用していますか?(悪意のあるプラグインを恐れるだけでなく、好奇心からの一般的な質問です:))
(3)多くのソフトウェアは拡張性のためのプラグインモデルで書かれていると思いますが、もしそうなら、それらはそのような攻撃に対してどのように防御しますか?
(4)一般に、拡張性のためにプラグインモデルを使用するという私の決定についてどう思いますか(他の選択肢を検討する必要があると思いますか?)
ありがとうございました
-マイクロカーネル:)
algorithm - デシジョンテーブルを表現するアルゴリズム
デシジョン テーブルをコードに格納する場合に使用するのに最適なアルゴリズムは何でしょうか。隣接行列とバイナリ ツリーを見たことがありますが、これが正しい方向であると考える人はいますか? 他にどのような選択肢がありますか?
.net - マルチパス「ストーリー」フローを作成するための適切なアプローチは何ですか?
助けてくれませんか。
私は、プレイヤーが複数のルートをたどることができるゲーム(2d)を書いています。その中には、分岐/マージ(おそらくループ)もあります。ゲームの各セクションは、次にロードされるセクションを決定します。
私は各セクションをIStoryElementと呼んでいます-そして、簡単に変更/構成でき、同時にグラフ化できる方法でこれらの要素をリンクするのに最適な方法を考えています
StoryElement
さまざまな構成オプションに基づいて適切なものをロードするエンジン/ファクトリーアセンブリを用意します。
私は当初、それぞれStoryElement
にNextElement() As IStoryElement
プロパティとCompleted()
イベントを提供することを計画していました。ベントが発生すると、エンジンはNextElementプロパティを読み取り、次を検索しますStoryElement
。
これの欠点は、ゲーム内のすべてのルートをグラフ化する場合、グラフ化できないことです。それぞれの可能なすべてのターゲットを特定できませんでしたStoryElement
。
私は他のいくつかの解決策を検討しましたが、それらはすべて少し不格好に感じます-たとえば、抽象化の追加レイヤーが必要ですか?つまり、StoryElementPlayersまたは同様のもの-それぞれが複数のStoryElement
おそらくシリーズとChoicePlayerをつなぎ合わせ、それぞれが独自のグラフを作成する責任がありますStoryElement
-しかし、これは問題を層の上に移動させるだけです。
つまり、シンプルでありながら動的なワークフローをエミュレートする方法が必要です(ただし、実際にはWWFを使用したくありません)。これほど単純なもののパターンはありますか?私が見つけたものはすべて、より高度な制御フロー(並列処理など)に関連しています。
django - 条件付きで必須のフィールドと無効な入力
私のフォームには、何度も何度も入力する必要がある住所フィールド (番地、都市、国、州、郵便番号) がたくさんあります。ユーザーにとって簡単にするために、以前に使用したアドレスを選択できる「コピー元」セレクターを追加しました。これを行うと、フォーム フィールドは自動的に入力されてから無効になります。このようにして、提出しようとしているものを明確に見ることができます。
問題は、フィールドが無効になっている場合、W3 は入力が送信されないと言うことです。フォームが検証に失敗することを除けば、セレクターから必要なすべてのデータを取得できるため、これで問題ありません。
2つのオプションがあると思います:
- フォームを送信する直前にフォーム フィールドを再度有効にします(ただし、これはちょっとしたハックです)。
- すべての住所フィールドをオプションにします。しかし、プリセット セレクターを使用しない場合でも、
clean_
メソッドが実際に入力されていることを確認するために、一連のメソッドを追加する必要があります。また、私はサイト全体でアドレス フォームを使用しており、いくつかの場所ではアドレス フォームが本当に必須であるため、フィールドをオプションにしたくないと考えています。ただし、住所フォームをコピーして貼り付けて、このページの特別なケースを作成することもできると思います.
考え?どのようなアプローチを取るべきですか?
.net - .NET ベースの IDE のスクリプト言語は?
ユーザーがオブジェクトとコンポーネントを視覚的に接続してソリューションを開発できるマシンオートメーション用の IDE があります。また、C++ および C# を使用して「プラグイン」を作成することもできます。IDE は .NET を使用して作成されています。そのユーザーは、多くの場合、従来のソフトウェア開発およびプログラミングではなく、技術/電気および自動化エンジニアの方向性に基づいていますが、C# および C++ プログラミングの基本を知る必要があります。
対話型コンソール (設計時のみ) を含む IDE 自体にマクロ/スクリプト言語を導入する場合、どの言語を選択する必要がありますか? .NET と DLR の両方に優れた基盤があり、将来性があり、優れたサポートとその背後にある適切な勢いがある動的スクリプト言語である必要がありますが、特別な開発者にとってはそれほど急な学習曲線はありません。理想的には、C++ や C# を知っていれば、完全に直感的に使用できるはずです。たとえ、堅実なソフトウェア開発者でなくても。
更新: 現在最も魅力的なオプションは、動的にコンパイルされた C# を使用することです。ユーザーは引き続き C# を使用できます。CSIが証明しているように、インタラクティブなコンソールを構築することさえ可能であるように思われます。このオプションについてどう思いますか?私たちが(一般的にスクリプト作成の経験がないために)まだ気付いていない潜在的な落とし穴/欠点はありますか?
asp.net - ASP.NETのCheckBoxListにSelectedItemsメンバーがない理由はありますか?
選択したアイテムを取得したいときはいつでも、各アイテムをループして、それが選択されているかどうかを確認する必要があります。CheckBoxListでは奇妙に見えるSelectedItem(最後に「s」がない)メンバーもあります。持っているのは論理的なことのようですが、なぜ追加しなかったのか誰か知っていますか?
programming-languages - インデックスが 1 から始まるプログラミング言語は?
重複の可能性:
1 インデックスのプログラミング言語のリスト?
AWK 以外に、インデックスが 0 ではなく 1 から始まるプログラミング言語はありますか?
user-interface - ボタンなどのクリック可能なアイテムにハンドカーソルを使用するのは間違っていますか?
私は常に、ハンド カーソルは、ユーザーにとって「ここをクリックしてください」という理想的な視覚的インジケーターであると考えてきました。ハイパーリンク、つまりすべての Web ボタンで使用されているため、このコンテキストで毎日目にすることに慣れています。
ただし、ほとんどのデスクトップ アプリケーションでは、ボタンのデフォルトのポインター矢印が維持されているようです。
ボタンや、チェックボックスやラジオボタンなどのクリック可能なアイテムにハンドカーソルを使用すると、本当に気分が良くなります。どういうわけか、クリック可能なアイテムにカーソルを合わせたときにこのカーソルが表示されるのは、個人的にはうれしいことです。これはおそらく、Web ページや多くのゲームでの動作と一致しているからでしょう。
しかし、開発者として、私たちは子供のユーザーのことを考えなければならず、私たちが子供を好きなようにではなく、ユーザーが好きなように物事を行うことがあります。問題は、ボタン上のハンド カーソルが非常に曖昧で、不適切である可能性に気付かないことです。多くの設計ミスは、このような個人的な決定によって引き起こされます。
あなたはそれについてどう思いますか?
編集:最近、Photoshop (XP の CS3) でハンド カーソルを使用していることに気付きましたが、それはおそらくそれをより広範囲に使用していたためです。スクリーンショット:
手が使用された場所の多くは明らかにクリック可能であることに注意してください。
EDIT2:また、カスタム カーソルを使用していることにも注意してください。正直なところ、特にどこにでもあるハンド カーソルのような些細なことについては、決して使用しません。そして、それはきれいではありません。
restructuredtext - 「パラレルテキスト」を書くためのスフィンクス
問題: reStructuredTextを使用して「パラレル テキスト」を書き込もうとしています。「パラレル テキスト」とは、テキストが 2 段組みになっている、注釈付きのフィクション作品のようなものを意味します。左欄が本文、右欄が解説です。そこから HTML と Latex ドキュメントを生成するためにsphinxを使用します。
次の要件があります。
- 前述のように、テキストを 2 つの列 (1 つは本文用、もう 1 つは注釈用) にタイプセットできるはずです。
- 注釈は「文レベル」にすることができ、常に「段落レベル」であるとは限りません。つまり、段落内のさまざまな文または段落全体に注釈を付けたいと考えています。
- 出力 HTML と Latex にはメイン テキストのみが含まれるように、すべての注釈をオフにするモードがあると便利です。この場合、コラムだけでなく、媒体の「不動産」全体を使用できるようにしたいと考えています。
- 可能であれば、「注釈のリスト」機能があると非常に便利です。
私は reStructuredText と Sphinx にはかなり慣れていませんが、Python にはかなりの経験があります。自分のやりたいことを実現するためのアイデアを探しています。私は reStructuredText について読んでおり、Sphinx 拡張機能の作成についても読んでいるので、Sphinx の拡張機能を作成することは問題外ではありません。
誰かが以前に似たようなことをしたことがありますか?
ありがとう!