問題タブ [design-patterns]
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.
language-agnostic - シングルトン: 優れた設計か松葉杖か?
シングルトンは熱く議論されているデザイン パターンであるため、スタック オーバーフロー コミュニティがシングルトンについてどう考えているかに興味があります。
「シングルトンは怠惰なプログラマー向けだ!」だけでなく、意見の理由を教えてください。
シングルトンの使用に反対していますが、この問題に関するかなり良い記事があります: Scientificninja.com: performant-singletons。
他に良い記事を持っている人はいますか?多分シングルトンをサポートしていますか?
.net - UI のコマンド パターンの例を探す
私は、基本的な UI を備えた WinForm .Net アプリケーションに取り組んでいます。この UI には、すべて同じ基になるコードを開始するツールバー ボタン、メニュー項目、およびキーストロークが含まれています。現在、これらのそれぞれのイベント ハンドラーは、関数を実行するために共通のメソッドを呼び出します。
私が読んだことから、このタイプのアクションはコマンド デザイン パターンによって処理でき、UI 要素を自動的に有効化/無効化またはチェック/チェック解除するという追加の利点があります。
良いサンプル プロジェクトをネットで検索してきましたが、実際には見つかりませんでした。誰かが共有できる良い例を持っていますか?
java - GoFデザインパターンを使用して高速ワードプロセッサを実際に構築できますか?
Gang of Fourのデザインパターンでは、少なくともいくつかのパターン、特にコンポジットとフライ級の例としてワードプロセッサを使用しています。
CまたはC++を使用する以外に、これらのパターンとそれに伴うオブジェクト指向のオーバーヘッドを実際に使用して、高性能のフル機能のワードプロセッサを作成できますか?
EclipseがJavaで書かれていることは知っていますが、あまり使用していないので、C++ベースのテキスト編集システムを備えたVisualStudioのように高速なのか洗練されているのかわかりません。
例としてC++とJavaのみを使用しました。問題は、ワードプロセッサやゲームなどのアプリケーションのように、メモリ内のオブジェクトを多数持つことのオーバーヘッドと関係があります。
デザインパターンは、パフォーマンスに何らかの打撃を与える可能性がある場合に通常指摘しますが、節約を犠牲にして抽象化を促進します。ワードプロセッサ、特にゲームは、金属にできるだけ近づけることで最大のメリットが得られます。
C ++で書かれていない高速なオブジェクト指向のワードプロセッサやテキストエディタを知っている人がいるかどうか、そしてパターンを使用してそれらを構築するのか、それとも多くの抽象化を放棄するのか、疑問に思っていました。
sql - INNER JOIN の一部で LIKE 句を使用する
ストアド プロシージャ/クエリを作成するときに、INNER JOIN の一部として LIKE 条件を使用できますか? 正しいことを聞いているかどうかわからないので、説明させてください。
テキストを含む列で検索するキーワードのリストを取得するプロシージャを作成しています。コンソールに座っていたら、次のように実行します。
しかし、ストアド プロシージャで "厳密に型指定された" リストの解析を行うために少し前に見つけたトリックは、リストをテーブル変数/一時テーブルに解析し、それを適切な型に変換してから、そのテーブルに対して INNER JOIN を実行することです。私の最終結果セットで。これは、たとえば整数 ID のリストをプロシージャに送信する場合にうまく機能します。最終的なクエリは次のようになります。
このトリックを文字列のリストで使用したいと思います。しかし、特定のキーワードを探しているので、LIKE 句を使用します。したがって、理想的には、最終的なクエリを次のようにすることを考えています。
これは可能ですか、推奨されますか?
このようなことを行うより良い方法はありますか?
文節の両端にワイルドカードを入れているのは、カード テキストで使用される「魔王」、「獣戦士」、「直接ダメージ」、「戦闘ダメージ」という用語があるためです。
パフォーマンスに応じて、指定したクエリを使用するか、全文キーワード検索を使用して同じタスクを実行できるかという印象を受けます。
テキスト検索したいフィールドでサーバーにテキスト インデックスを作成させる以外に、他に何かする必要がありますか?
sharepoint - トランザクションデザインパターン
COM +または.NETトランザクションをサポートしない外部APIを使用して「トランザクション」プロセスを作成する必要があります(正確にはSharepoint)
私がする必要があるのは、シーケンスでいくつかのプロセスを実行できるようにすることですが、そのシーケンスで障害が発生すると、前のすべてのステップを手動で元に戻す必要があります。私の場合、ステップは2種類しかなく、どちらも元に戻す/ロールバックするのはかなり簡単です。
これに役立つ可能性のあるデザインパターンや構造についての提案はありますか?
javascript - JavaScript を使用したデザイン パターンの実装例をいくつか教えてください。
私は JavaScript を使用するある程度熟練したプログラマーですが、達人ではありません。これを使って非常に強力なことができることは知っていますが、かなり基本的な DOM 操作以外はあまり見たことがありません。Factory Method、Singleton など、JavaScript を使用した従来の設計パターンの概念の例をいくつか提供していただけないでしょうか。これらのパターンは、Web でどのような場合に使用されますか?
c# - コンパクトフレームワーク-MVCフレームワーク/ライブラリは利用できますか?
マイクロソフトの従業員によるこのテーマに関する記事を見つけましたが、これに対してより堅牢なフレームワークを実装した人はいますか?簡単に移植できるWinForms用の軽量フレームワークはありますか?私はかなり早くスピードを上げて、賢い人がすでにこれを行っているときにこれを処理するために自分のフレームワーク/ライブラリを作成することを避けたいと思います。
P&Pグループのモバイルソフトウェアファクトリーは見たことがありませんが、ちょっと重いのではないかと思います。一見の価値がありますか?
編集:ASP.NETMVCプロジェクトに関する情報を探していません。コンパクトフレームワークの「WinForms」の実装と、それを使用してMVCを実装する方法について質問しています。
design-patterns - デザインパターンを超えて?
過去10年ほどの間、クリストファー・アレクサンダーの新作「The Nature of Order」と、それをソフトウェアに適用する方法について言及している記事や論文が散在しています。
残念ながら、私が見つけることができる唯一の作品は、JamesCoplienとRichardGabrielからのものです。少なくともグーグルを通してそのようなものを見つけようとした私の試みからは、それ以上のものは何もありません。
この種の議論はどこでも起こっていますか?
MSN
@ジョージア
私の質問は、デザインパターンやパターン言語についてではありません。それは、クリストファー・アレクサンダーの仕事の多くをソフトウェアに適用できるかどうかを確認することです(アーキテクチャや建物よりも物理的な制約がさらに少ないため、おそらく可能です)。
デザインパターンとパターン言語は、アレクサンダーのデザインパターンの構造を取り入れているようですが、本質を捉えているものは多くありません。本質は、特定の状況で問題を解決することを超えた何かです。
アレクサンダーの後の作品のいくつかを参照点として使用せずに説明することは困難です。
編集:いいえ、私はそれを取り戻します。
たとえば、Alcovesと呼ばれる建築デザインパターンがあります。このパターンには、状況の状況だけでなく、建物の目的に関する基本事項にも根ざしたコンテキストがあります。つまり、建物は住むべき構造であり、住むことを促進する必要があります。アルコーブパターンの場合、家族が物理的に一緒にいることとできることが重要であるため、複数の人が同じエリアにいて異なることを行うことができるエリアが必要です。他の家族の気を散らす傾向があるもの。
ほとんどのソフトウェアデザインパターンは、コンテキスト内の問題を記述しますが、問題が重要である理由、または問題がソフトウェアの基本的なものである理由について、より深い説明はしていません。これにより、デザインパターンを不適切または軽快に適用することが非常に簡単になります。これは、当初のデザインパターンの意図とは正反対です。
MSN
model-view-controller - MVC とは何ですか? また、その利点は何ですか?
mvp と mvc とは何か、そしてその違いは何かを見つけましたが、この質問には実際には答えませんでした。
私は最近 MVC を使い始めました。これは、私自身と私の仕事のパートナーが使用するフレームワークの一部であるためです。簡単に見え、プロセスと表示が分離されているため、これを選択しました。これ以外に、私たちが知らない、見逃している可能性のある利点はありますか?
長所
- 表示と処理を分離
短所
- 今のところなし
ruby-on-rails - MVCでクロスモデル情報を表現するには?
私は、MVC を使用して構築されたアプリケーションを持っています。このアプリケーションは、多数のモデルにわたって要約情報を提供するビューを生成します。さらに、いくつかの計算は、さまざまなデータ セットに対して実行されます。
このための開始点として意味があると思われる明確な単一モデル (少なくともテーブルにマップされる) はありません。そのため、さまざまな要約がコントローラー内の寄与モデルから引き出され、ビューに渡され、そこで計算が実行されます。 .
しかし、それはまあ、汚いようです。でもコントローラーは軽いはずですよね?また、ビジネス ロジックはビューに含めるべきではありません。
では、この情報はどこで収集する必要があるでしょうか。テーブルにマップされない新しいモデルですか? ライブラリ関数/モジュール? または、他の何か?
(これは主にアーキテクチャ/パターンに関する質問だと思いますが、Rails、FWIW で作業しています。)
編集:全体的に良い答えであり、多くのコンセンサスがあり、心強いです。Railscastsへのリンクを一番上に保つために行った回答を「受け入れ」ました。Railscast の表示が遅れています。これを修正するために精力的な試みを行う必要があります。