問題タブ [consistency]

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 に答える
2290 参照

asp.net - Web アプリケーションでセッションの競合状態を処理する方法は?

私は ASP.NET アプリケーションを使用していましたが、AJAX 要求のトラフィックが大量に発生しています。

ユーザーが Web アプリケーションにログインすると、このユーザーの状態に関する情報を保存するためのセッションが作成されます。現在、セッションデータの一貫性を維持するためのソリューションは非常に単純で残忍なものです。各リクエストは、処理される前に排他ロックを取得する必要があります

これは、従来の Web アプリケーションでは問題なく機能します。しかし、Web アプリケーションが AJAX をサポートするようになると、効率的ではなくなります。Web ページをリロードせずに、複数の AJAX リクエストが同時にサーバーに送信される可能性は十分にあります。すべての AJAX リクエストが排他ロックによってシリアル化されている場合、応答はそれほど速くありません。とにかく、同じセッション変数にアクセスしない多くの AJAX リクエストも同様にブロックされます。

リクエストごとに排他ロックがない場合は、デッドロックを回避するためにすべての競合状態を慎重に処理する必要があります。コードが複雑になり、バグが発生するのではないかと心配しています。

では、セッション データの一貫性を保ち、コードをシンプルかつクリーンに保つためのベスト プラクティスはありますか?

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

linux - 組み込みシステムでのヒープ整合性チェック

次のようなクラッシュが発生します。

ヒープ破損の問題だと思います。ulibc には mcheck/mprobe がありません。Valgrind は MIPS をサポートしていないようで、私のアプリ (マルチスレッド) はハードウェア固有のドライバーに依存しています。ヒープの一貫性をチェックし、破損を検出するための提案はありますか?

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

c++ - 演算子関数の配置の一貫性

私はこのようなクラスを持っています:

2 * Aただし、許可されるだけでなく、次のようなこともできるようにしA * 2たいので、クラスの外で次のような関数が必要になります。

一貫性を保つために、これらすべての演算子をクラスの外に置くべきですか、それとも半分を内側に、半分を外側に保つべきですか?

0 投票する
4 に答える
1032 参照

qt - QtのQList:リスト内のアイテムの数を取得するための標準形はどれですか?

QtのQListクラスは、リスト内のアイテムの数(カウント、長さ、サイズ)を取得するためのいくつかのメソッドを提供します。誰もが知っているように、一貫性が重要なので、これら3つを使用するための標準的/推奨される方法はどれですか?

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

java - データの一貫性を確保するためのトリガーの使用

テーブルに格納された階層構造があります。各要素には、その前、次、および親へのポインターがあります

O/R マッピングを使用してこのテーブルにアクセスして変更する Java アプリケーションがあります。カタログが破損することがあります。たとえば、同じ親を持たないリンクされた要素です。Oracleトリガーまたは他の純粋なSQL手法(Javaコードなし)を使用してデータの一貫性を確保できるかどうか疑問に思っています。

これは物事を行う「正しい方法」ですか?

トリガーを実装するにはどうすればよいですか? テーブルを検証するストアド プロシージャを実装できます。何かのようなもの

0 を返す必要があります。

しかし、コミット時にどのように呼び出すことができますか? テーブルが有効でない場合にロールバックする可能性があるコミットが終了する直前に、すべての行の更新でそれを呼び出したくありません。

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

c++ - C++ ライブラリ間のヘッダー ファイル名の一貫性

私のプロジェクトでは、v8boostの 2 つのライブラリを使用しています。Boost は.hppヘッダーに拡張子を使用しますが、v8 はヘッダーに.h拡張子を使用します。

一日の終わりに、私のソース コードは次のように始まります。

この件について私が尋ねた別の質問では、一般的な答えは、それは問題ありませんが、名前の間で一貫性を保つ必要があるというものでした.

このコードはうまくコンパイルされますが、コーディング スタイル/標準 - 大丈夫ですか? この問題の解決策はありますか (何らかの方法ですべて.hpp.h自動的に変更するなど)。

ありがとう。そして、愚かな質問をして申し訳ありません。

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

.net - 複数ユーザーの Web アプリケーション gridview で同時実行を制御する

みんな、私は大きな問題を抱えています。

バックオフィス アプリケーションを実行していますが、編集可能なグリッド ビューを含むフォームがあるとします。

  1. 100人のユーザーがページにアクセス
  2. 100 人のユーザーがデータベースから提供されたデータとしてフォーム ページを表示します
  3. 100 人のユーザーがいくつかのフィールドを編集
  4. この例では、最終的なデータと一貫性をどのように制御しますか?
0 投票する
1 に答える
128 参照

python - ツイスト RPC は順番どおりに到着することが保証されていますか?

クライアントとサーバーを実装するためにツイストを使用しています。クライアントとサーバーの間に RPC をセットアップしました。したがって、私が行うクライアントではprotocol.REQUEST_UPDATE_STATS(stats)、. サーバーがこのメッセージを受信すると、サーバー プロトコルの関数が呼び出されてデコードされ、この場合のようにメッセージに基づいて関数が呼び出されます。transport.write["update_stats", stats]dataReceivedCMD_UPDATE_STATS(stats)

クライアントで次のようなことをするとします。

...メッセージがサーバー上"stats1"のメッセージよりも前に到着することは保証されていますか?"stats2"

更新: より明確にするために編集されました。しかし、今では答えは明らかです。

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

c++ - ユーザー インターフェイスを最新の状態に保つ最善の方法は?

この質問は、私の質問Different ways ofobserver data changes を改良したものです。

私の C++ アプリケーションにはまだ多くのクラスがあり、それらは複雑な数学ルーチンやビジネス ロジックの複雑な部分で頻繁に更新されます (または更新される可能性があります)。

「オブザーバー」アプローチを採用し、インスタンスの値が変更されるたびに通知を送信すると、2 つの大きなリスクがあります。

  • 通知自体を送信すると、アプリケーションの速度が大幅に低下する可能性があります
  • 変更によってユーザー インターフェイス要素を更新する必要がある場合、それらは変更のたびに更新されます。その結果、たとえば、ビジネス ロジックの一部が実行されている間に画面が何千回も更新されます。

いくつかの問題は、バッファリング メカニズム (アルゴリズムの開始時とアルゴリズムの終了時に通知を送信するメカニズム) を追加することで解決される可能性がありますが、ビジネス ロジックはソフトウェアの多くの場所で実行される可能性があるため、メニューで選択されたすべての可能なアクションの後、ほとんどどこにでもバッファリングを追加することになります。

「オブザーバー」アプローチの代わりに、「mark-dirty」アプローチを使用して、変更されたインスタンスのみをマークし、アクションの最後にユーザー インターフェイスにそれ自体を更新するように指示することもできます。

繰り返しになりますが、ビジネス ロジックはアプリケーション内のどこからでも実行される可能性があるため、実際には、ユーザーが実行するほぼすべてのアクションの後に、追加の呼び出し (すべてのウィンドウに自分自身を更新する必要があることを伝える) を追加する必要がある場合があります。

両方のアプローチには似ているように見えますが、反対の欠点があります。

  • 「オブザーバー」アプローチでは、ユーザー インターフェイスを何度も更新するリスクがあります。
  • 「mark-dirty」アプローチでは、ユーザー インターフェイスをまったく更新しないというリスクがあります。

両方の欠点は、すべてのアプリケーション アクションを追加のロジックに埋め込むことで解決できます (オブザーバーの場合: 開始終了通知の送信、マークダーティの場合: update-yourself 通知の送信)。

非ウィンドウ アプリケーションでは、これはおそらく問題にならないことに注意してください。たとえば、mark-dirty アプローチを使用して、一部の計算でデータが必要な場合にのみ、データがダーティな場合に備えて追加の処理を行う必要がある場合があります (これは一種のキャッシュ アプローチです)。

ただし、ウィンドウ アプリケーションの場合、ユーザーが「画面を見ている」こと、およびウィンドウを更新する必要があることを示す信号はありません。そのため、ダーティ データを確認しなければならない、本当に良い瞬間はありません (ただし、フォーカス イベントを使用していくつかのトリックを行うことはできます)。

この問題を解決するための良い解決策は何ですか? また、アプリケーションでこのような問題をどのように解決しましたか?

アプリケーションの計算/データモデル部分にウィンドウ処理手法を導入したくないことに注意してください。この問題を解決するためにウィンドウ技術が必要な場合は、アプリケーションのユーザー インターフェイス部分でのみ使用する必要があります。

何か案が?

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

class - メソッド/クラスのコメントは一貫して適用する必要がありますか、それとも必要に応じてのみ適用する必要がありますか?

一貫性を保つために、単純なゲッターとセッターのメソッドや非常に小さなラッパークラスであっても、すべてのメソッドとクラスに(JavaDocの形式で)コメントを常に適用しています。しかし、私はまた、コメントを不要にすることが多い自己文書化コードの記述にも努めています。つまり、必要な場所にのみコメントを書き込みます(その前に、コメントがまったく必要ないようにコードを書き直してみてください)。したがって、これら2つのアプローチは互いに矛盾しているように見えます。

では、メソッドまたはクラスを説明するコメントは一貫した方法で適用する必要がありますか、それともそのようなコメントは、定義から意味が完全に明確でない場合にのみ書き込む必要がありますか?