問題タブ [code-design]

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.

0 投票する
2 に答える
142 参照

c# - 代入演算子のオーバーロードを許可しない c# の設計説明が必要です

代入演算子のオーバーロードを許可しないc#の設計説明を本当に知りたいです。有効なもの以上のものがあるに違いないと確信しており、それを知る必要があります。

答えは実際にここにあり、それはすべて理にかなっています(Jonに感謝します):

C#で「=」をオーバーロードできないのはなぜですか?

0 投票する
2 に答える
431 参照

javascript - Javascript モジュール パターン - この範囲を失う

「いくつかのウェブサイト」のエスカレートするニーズを満たすために、しばらくの間 js モジュール パターンに取り組んできました。基本的に、スクリプトをグループ化/カプセル化するための適切な方法と、OO パターンの必要性が必要なだけです。

問題なく動作する構造を手に入れましたが、その特定の部分に満足していないので、リファクタリング中です。更新されたパターンは次のとおりです。

これにより、満足のいくDOM構造が生成されます(firebugによる検査時)-しかしthis、返されたオブジェクトの「パブリック」メソッドを内部的に呼び出している特定の領域の範囲を失っています。

このパターンの前の反復では、「クラス」オブジェクトは自己実行型であり、参照thisが維持されます。

ただし、リファクタリングされたパターンでは、これらの「クラス」を を介してインスタンス化しnew、実行順序をより詳細に制御したいと考えています。

私は、js のレキシカル スコープのかなり気の遠くなるようなテーマに関する記事をたくさん読みましたが、結論は出ていません。

this更新されたモジュール パターンのスコープを維持するにはどうすればよいですか?

0 投票する
1 に答える
4557 参照

java - ジャージーでの認証

Jersey0ベースのサーバー/クライアントRESTに認証を実装したいのですが、コードを正確にレイアウトする方法がわかりません。

基本的に、すべての操作に対して、2つの方法があります。1つはサーバー側から、もう1つはクライアント側からです。

アルゴリズムを絞り込みました。HMACでamazon戦略を使用します。

問題は、これをコードにどのように配置するかです-認証(暗号化/復号化コード)をすべてのメソッドに追加する必要があります-サーバー/クライアント側の両方、または暗号化を実行する「ディスパッチ」メソッドを両側に1つ持つ必要があります/復号化してから、実行制御をより特殊なバージョンに移します。そうすれば、クライアントまたはサーバーの両方で認証が行われる1つの中心的な場所ができますか?

それについてのあなたのコメントを喜んで聞きますか?

0 投票する
3 に答える
174 参照

c# - ブール値でヒューズを実行する

初期化中に一度実行しなければならないコードがたくさんあります。

イベントにあるため、この方法でブールフラグを使用する必要があります

頻繁に発生するため、このブール変数をヒューズのように見せるために何かをしました。

だから私はこれをしました:

falseに初期化されている場合、クエリの結果は一度falseを返し、trueに切り替え、後続の呼び出しはtrueを返します。

もちろん、それは機能しますが、私は適度に満足しているだけであり、よりエレガントな解決策があると確信しています。あなたは何になりますか?

0 投票する
3 に答える
291 参照

c++ - 派生クラスの仮想関数へのアクセシビリティをいつ制限する必要がありますか?

次のコードを検討してください。

この問題について、私は 2 つの異なる考え方を聞いたことがあります。

1) ユーザーは static_cast を使用してアクセスできるため、基本クラスと同じようにアクセシビリティを維持します。

2) 関数をできるだけ非公開にする。ユーザーが a->Foo() を必要とし、b->Foo() を必要としない場合、Derived::Foo は非公開にする必要があります。必要に応じていつでも公開できます。

どちらか一方を好む理由はありますか?

0 投票する
3 に答える
212 参照

python - 大きなviews.pyを小さな断片に分割する

私は巨大なviews.pyファイルを持っているので、それを と に分割しましviews.pyadmin_views.py。関数は他のファイルの関数に依存する傾向があるため、次のようにしました。

これにより循環依存関係が発生し、インポートが機能しないことがわかりました。この問題を解決する最善の方法は何ですか? ファイルの最後にインポート ステートメントを配置できることはわかっていますが、それはあまりエレガントではないようです。

0 投票する
1 に答える
1043 参照

wpf - System.Windows.Automation.Peers.AutomationPeer.GetPattern() メソッドが Generics を使用しないのはなぜですか?

GetPattern()メソッドの実装はWPF UI Automation system、enum パラメーターPatternInterfaceを使用して実装され、通常は次のように使用します。

上記のコードから、コメントLine in Questionのある行は強く型付けされていないようです。メソッドからの戻り値をGetPattern()必要なインターフェイスにキャストし、それを使用して特定の UI オートメーションを呼び出す必要があります。

質問:GetPattern()メソッドの実装が、以下のように .Net Framework にWPF既に存在するものを使用して行われ た場合、それは良くなかったでしょうか:Generics

  • ここで、メソッドを呼び出すときに必要なインターフェイス パターン名を渡し、GetPattern<T>厳密に型指定されたそのインターフェイス インスタンスを取得し、キャストも必要としません。?を必要とするメソッドの最初の実装において、Microsoft はどのような考えを示しまし たか?GetPattern()enum
  • GetPattern()メソッド パラメーターで列挙型を使用しても、元の実装の保守性が損なわれることはありません。新しい Control インターフェース パターンをサポートする必要がある場合、そのパターン インターフェースの列挙値を、PatternInterface

Generic 実装の呼び出しを使用する以下の新しいコードを使用して、メソッドを呼び出してインターフェイス パターンを取得する方が簡単で優れていると思います。

0 投票する
1 に答える
4948 参照

jsp - jspページの選択ボックスにデータベースの値を入力し、サーブレットから呼び出し元のjspにデータが送り返された場合に選択された値を表示する方法は?

私は JSP、サーブレット、および Java Bean の分野の初心者です。ユーザーのグループを作成する html フォームを含む jsp ファイルに取り組んでいます。MVC モデルを使用してこのフォームを開発しようとしています。このフォームには、2 つのテキスト ボックスと 2 つの選択ボックスが含まれています。これらの選択ボックスから、ユーザーを含む 1 つの選択ボックスで複数の値を選択できます。jsp ページに最初の呼び出しが行われるたびに、このユーザー選択ボックスは次のように入力されます。

データベースから取得したユーザー名。フォーム機能は、フォームが送信されるたびに、フォームのアクションメソッドで言及されているサーブレットが呼び出されるようなものです。このサーブレットは、ユーザーがデータベースに既に存在するかどうかをチェックします。グループの場合

name がデータベースに存在しない場合、グループ名とその他のフォーム データがデータベースに保存され、応答属性が値「Success」で jsp ページに送り返されます。グループ名がすでに存在する場合は、返信属性が送信されます

値「重複」でjspページに戻り、残りのフォームデータもjspページに送り返されるため、このフォームデータはフォームに埋め戻されます。

これが私のJSPファイルコードです。

jspページの上記のコードと言及されたコメントによると、私はそれに関して次の疑問と質問があります。

  • ご覧のとおり、jsp ページが初めて呼び出されたとき、およびコントロールがサーブレットから jsp ページに送り返されたときに、ユーザー選択ボックスを埋めるコードをいくつか書きました。このコードには Java コードが含まれています。ユーザー選択ボックスを埋めるこのソリューションは、MVC パターンに従って適切なコーディングではないと思います。つまり、適切なコード設計ではありません。javaコードをjspで書くのは良い習慣ではないことを読みました.このコーディングを短く最適化するにはどうすればよいですか?

  • jsp コードの行番号 2 と 3 を見つけてください。つまり、jsp の userbean タグです。このタグを使用して作成されたオブジェクトは、ユーザーリスト ボックスを埋めるためにのみ使用されます。これも最適なコーディングではないと思います。このコーディングを短く最適化するにはどうすればよいですか?

  • 入力されたグループ名がデータベースに既に存在する場合、サーブレットはすべてのデータを属性としてリクエスト オブジェクトに設定し、リクエスト ディスパッチャを使用してそれを jsp ページに転送しますが、アドレス バーの URL を確認すると、jsp ページが事前入力されたフォームでブラウザに表示されます。 URLにjspページ名が表示されていません。サーブレット名が表示されます。では、アドレスバーに jsp 名を戻すにはどうすればよいでしょうか?

  • 初心者向けの実際の単語の問題と例を含むコード設計情報に関する情報を提供するインターネット上のリンクはありますか?

この問題を解決するには、専門家からのガイダンスと提案が必要です。この問題で私を導いてください。

ありがとうございました

0 投票する
2 に答える
2328 参照

java - Java: Observable を拡張するクラスのインターフェース

私はプログラムを作成しており、ビジネス ロジックをインターフェイスの背後に保持したいと考えています (これは良い方法だと理解しています)。また、ビジネス ロジックを Observable にしたいと考えており、Observable は具体的なクラスです。

プログラムの他の部分は、ビジネス ロジックが 1) 独自のインターフェイスを実装し、2) Observable を拡張することを認識する必要があります。

それ、どうやったら出来るの?

0 投票する
1 に答える
990 参照

java - junit テスト ケースの設計 - 各テスト ケースの事前定義された手順

junit テスト ケースをより読みやすく、保守しやすいように設計する方法についてのアイデアを得ることに興味があります。ここに問題があります-すべてのjunitテストケースで、以下のように実行する定義済みのステップがいくつかあります

問題は、新しいテスト ケースを追加する場合、新しいテスト ケースが mockObjectX()、mockObjectY()、mockObjectZ() を呼び出すことを確認する必要があることです。新しいテストケースの追加がより簡単になるようにテストケースを設計するより良い方法 (より保守しやすい方法) はありますか?

mock* メソッドはパラメーターを受け入れるため、 @Before は使用できないと思います。

私が考えることができる1つの方法は、オブジェクトX、Y、およびZをモックするために必要な各パラメーター値のメソッドを含むクラスを持つことです

これにより、番号が減少します。各テスト ケースで実行する必要があるメソッド呼び出しの数。より良いアイデアはありますか?