問題タブ [idempotent]
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.
windows - 重複した Windows ファイアウォール規則 (Netsh AdvFirewall ファイアウォール)
netsh advfirewall firewall
でファイアウォール ルールを作成すると、そのルールを複数回実行して、同一のファイアウォール ルールを複数作成できることに気付きました。
新しいファイアウォール ルールを作成する前に、ファイアウォール ルールが存在するかどうかを確認する方法はありますか?
ansible - Ansible linefile insertafter 重複行
VBox で壊れた sendfile サポートを修正したいので、 に行を入れる必要があります。私はansibleプレイブックでそれをやりたいです。特定のタスクは次のようになります。
プレイブックを再度呼び出す必要があるときに問題が発生しており、このタスクは行を複製しています。それを修正する方法。
java - Java では、Closeable インターフェースの close() メソッドの冪等性はどのように保証されますか?
Closeable
インターフェースはJava 5で導入されましたが、インターフェースはJava 7でステートメントAutoCloseable
とともに導入されました。(Java 7 以降)インターフェイスを拡張します。try-with-resources
Closeable
Autocloseable
『OCA/OCP Java SE 7 - Programmer I & II Study Guide』の 399 ページには、次のように書かれています。
close()
複数回呼び出すとどうなりますか? 場合によります。を実装するクラスAutoCloseable
の場合、実装はべき等である必要があります。つまりclose()
、一日中電話しても、2 回目以降は何も起こらないということです。[...] を実装するクラスCloseable
の場合、そのような保証はありません。
したがって、このテキストによると、 の実装はAutoCloseable
冪等である必要があり、そうでCloseable
ないものは必要です。AutoCloseable
docs.oracle.com でインターフェースのドキュメントを見ると、次のように書かれています。
close
のメソッドとは異なりCloseable
、この close メソッドはべき等である必要はないことに注意してください。つまり、このclose
メソッドを複数回呼び出すと、目に見える副作用が発生する可能性がありますCloseable.close
。
今、これは本に書かれていることの反対です。2 つの質問があります。
(1) 正しいのは? docs.oracle.com のドキュメントですか、それとも本ですか? べき等性が必要な 2 つのインターフェイスはどれですか?
(2) どちらが冪等である必要があるとしても、Java には冪等であることを保証する方法がまったくないというのは正しいですか? もしそうなら、メソッドが冪等であるという「要件」はclose
プログラマーがすべきことですが、インターフェイスを使用した誰かが実際にそれを行ったかどうかはわかりませんよね? この場合、冪等性は単なるオラクルの提案ですよね?
javascript - 純粋関数は冪等ですか?
すべての純粋関数は冪等ですか?
公式のAngular.js チュートリアルでこのステートメントを見ていなければ、私はそのようなクレイジーな質問をしませんでした:
フィルター関数は純粋な関数である必要があります。つまり、ステートレスでべき等である必要があります。Angular はこれらのプロパティに依存し、関数への入力が変更された場合にのみフィルターを実行します。
これは、純粋関数はステートレスかつ冪等でなければならないことを暗示しているように思われますが、これは純粋関数の一般的な定義とは一致しません。
実際、これはページ内の以下の例とは一致しません。ここでは、文字列内の文字を逆にすることがフィルターの例として示されています。もう一度。
さらに興味深いことに、そのチュートリアルでリンクされている純粋な関数のウィキペディアのページを見ると (私は新しいユーザーなので、リンクを 1 つしか投稿できません。申し訳ありません...): sin ( x ) が a の例として報告されます。純粋関数。
Angular.js によると、正弦は冪等性ですよね?
私は何が欠けていますか?
rest - HTTP メソッド POST は必然的にべき等ですか?
REST の理論的な問題で立ち往生しています。
シンプルな商品在庫 API を想像してみてください。product
データベースには、 、 、quantity
および を参照するムーブメントのコレクションが 1 つ含まれていますstatus
。
前提条件が 1 つあります。それは、API ユーザーにステータスを操作させたくないということです。ステータス値はreserved
またはconfirmed
です。
まず、商品の予約を作成したいと思います。これを表す対応する URL パスと HTTP メソッドを次に示します。
[POST] /products/{product-id}/reservations
これにより、ステータス付きのムーブメントがreserved
作成され、作成されたムーブメントの ID が返されます。
ここで、この予約を確認します。
[POST] /reservations/{movement-id}/confirmations
意味的には、確認済みの予約を作成しているように思えます。実際には、ムーブメントのステータスを変更するだけです。
だから、2つの質問:
- 私の 2 番目の POST は冪等です。RFC で情報を見つけることができませんでしたが、POST は冪等にできますか?
- 確認を表すためのより良い方法が見つかりましたか?
mysql - MySQL クエリの結果を Memcached にキャッシュし、更新の一貫性を確保する
MySQLクエリの結果をMemcachedに保存するときの一貫性について考えていました。更新時に何が起こりますか?
更新時に、データは Memcached から削除されます。
しかし...次の操作がこの順序で行われる次のシナリオを考えてみましょう:
- クライアント A が更新リクエストを API サーバーに送信します。
- クライアント B が GET リクエストを API サーバーに送信します。
- 両方のリクエストが並行して実行されます。
- クライアント B のリクエストを処理するスクリプトは、DB からデータを取得します。
- クライアント A の要求を処理して DB 上のデータを更新するスクリプト。
- クライアント A の要求を処理するスクリプトは、削除要求を memcached に送信します。
- クライアント B のリクエストを処理するスクリプトは、挿入リクエストを memcached に送信します。
この場合、memcached には古いデータが取り込まれます。
このシナリオで一貫性を確保するにはどうすればよいですか?
jenkins - ジェンキンスがその構成を書き換えているときに、このアンシブルジェンキンススクリプトを冪等にする方法は?
jenkins をデプロイするための ansible プレイブックがあります。jenkins config.xml
jinja2 テンプレート ファイルには、AD 認証用の次のスニペットが含まれています。
{{ ldap_password }}
ボールトからの平文パスワードです。
問題は、config.xml がデプロイされた後に jenkins が起動すると、クリア テキストのパスワードがパスワード ハッシュに置き換えられて書き換えられることです。(異なる仮想マシンでは異なるハッシュを取得するため、ハッシュはターゲット ホストに依存しているようです)。これは一般的には良いことですが、プレイブックを実行するたびに、テンプレート操作が変更されたとマークされます。
この再生スクリプトを冪等にするにはどうすればよいですか?
functional-programming - 「渡された変数の変更」の用語?
オブジェクトを渡し、オブジェクトにデータを追加し、同じオブジェクトを返すプログラミング スタイルを表す用語はありますか? そのようです:
リファクタリングが難しくなる可能性があるため、回避できる場合、これは私のお気に入りの方法ではありません。この (場合によってはアンチ) パターンの名前はありますか? 「べき等ではない」または「可変引数」であると言いたいのですが、それらの用語が正しいとは思いません。
これに名前はありますか?
api - キャッシュされている場合でも、GET 要求はべき等ですか?
私の理解では、冪等のリクエストは何も変更しません。GET リクエストによって生成される副作用 (たとえば、検索エンドポイントへのリクエストのキャッシュ) がある場合、それはまだべき等ですか?