問題タブ [preconditions]
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.
sql - 一意制約の Liquibase 前提条件
Liquibase を使用して列に一意の制約を追加したいと考えています。もちろん、前提条件を使用して重複行が存在するかどうかを確認したいと思います。
私はこれを思いついた:
ただし、これはEmpty set
MySQLおよびおそらく他のデータベースで生成されます。
expectedResult=""
andを使用してみexpectedResult="null"
ましたが、どちらも機能しません。
http - HTTP PUTのコンペアアンドスワップ?
HTTP標準に従いながら、特定のリソースを変更する唯一の方法として、コンペアアンドスワップスタイルのメカニズムを作成する方法はありますか?
正しい動作を実装するIf-Match
ヘッダーがありますが、このヘッダーはオプションです。私が知る限り、If-Match
提供されていない場合、サーバーはを尊重する必要がありますPUT
。(つまり、コンペア・アンド・スワップを行うか、単にスワップするかを決定するのはクライアントの責任です。)クライアントがヘッダーを提供412 Precondition Failed
しようとしているかどうPUT
かにかかわらず、応答することは許容されますか?POST
If-Match
java - コンパイル時に、Java 1.4 の assert キーワードを無効にするように、グアバの前提条件を無効にすることは可能ですか?
以前はコードに java1.4 のアサーション構造を挿入していましたが、挿入されたアサーションをデバッグ時に有効にし、コンパイル時に無効にできるため、非常に実用的であることがわかりました。
私の質問は
、グアバのライブラリで最新の Preconditions.checkArgument(..) などに同じことを行うことができるかどうかです。
これは知っておくことが重要です。コードには guava の事前条件チェックがたくさんあるかもしれませんが、それらのほとんどはデバッグ目的のためのものであり、そのような事前条件の数が急速に増えるとパフォーマンスに影響を与える可能性があります。
ありがとうございます。
c++ - c++ 前提条件/アサーション
これは宿題ではありません。ただ練習しているだけです。このアサーションの概念に頭を悩ませているようには思えません。
java - Junit の前提条件とテスト データ
アドレス帳を作成し、それをテストして評価する Java の割り当てがあります。私はそれを作成し、いくつかのjunitテストを作成しました。課題の成果物セクションでは、完全なプログラムのすべてのテスト ケースを表にリストするように指示されています。
- 一意の ID
- テストの説明
- テストを実行するための前提条件
- テストデータ
- 期待される結果
以下のテストの前提条件とテストデータが何を意味するのか誰か教えてください。
チューターにメールを送ろうとしましたが(遠く離れた学習者です)、返信を得るのに時間がかかりすぎました. 前提条件は、entry1 にデータを入力する必要があるということでしょうか? テストデータ: "アリソン・マレー"? どんな助けでも大歓迎です
domain-driven-design - クライアントは事後条件をチェックする必要がありますか/呼び出されたメソッドは前提条件をチェックする必要がありますか?
パブリック メソッドの事前条件と事後条件は、このメソッドとそのクライアントの間の契約を形成します。
1.によると、呼び出し元は事後条件を検証してはならず、呼び出されたメソッドは事前条件を検証してはなりません:
プログラム 49.2 に示すように、平方根関数 sqrt の事前条件と事後条件を思い出してください。sqrt を呼び出す関数は、負でない数値を関数に渡す必要があります。負の数が渡された場合、平方根関数はそれを処理するために何もしません。一方、負でない数値が sqrt に渡された場合、事後条件を満たす結果を返すのは sqrt の責任です。したがって、sqrt の呼び出し元は、結果を確認または修正するために何もする必要はありません。
操作の事前条件が失敗した場合、呼び出し元を非難する 操作の事後条件が失敗した場合、呼び出された操作を非難する
しかし、別の記事に含まれるコードに見られるように、呼び出されたメソッドは前提条件を検証します:
a)メソッド の前提条件を満たすことはクライアントの責任であるため、呼び出されたメソッドも前提条件が満たされているかどうかを確認する必要がありますか?
b)事後条件を満たす結果を提供するのは呼び出されたメソッドの責任であるため、呼び出し元は事後条件をチェックする必要がありますか?
2.最初の記事で述べた利点の 1 つは、「事前条件と事後条件を使用して、OOP のクラス間で責任を分割できる」ことです。これは、呼び出されたメソッドが前提条件を検証する責任を負わないことも理解しています。 postconditionを検証する呼び出し元の責任ではありません。
しかし、そのような哲学に固執すると、コードがより脆弱になるのではないでしょうか? コードは相手 (呼び出し元またはメソッドのいずれか) が約束を果たすことを盲目的に信頼するからです。
3.呼び出し元/呼び出されたメソッドが相手を盲目的に信頼していない場合、事後条件と事前条件によって提供される利点の多くを失うことはありません。これは、呼び出されたメソッドが前提条件もチェックする責任を負い、呼び出し元が責任を負う必要があるためです。事後条件を確認するには?
ありがとう
編集
3.
呼び出し元/呼び出されたメソッドが other party を盲目的に信頼していない場合、事後条件と事前条件によって提供される利点の多くを失うことはありません。これは、呼び出されたメソッドが前提条件もチェックする責任を負い、呼び出し元が検証する責任を負う必要があるためです。事後条件?
事後条件は呼び出されたメソッドによって保証される必要があるため、呼び出し元は事後条件を検証する必要はありません。コントラクトを強制する他の方法がないため、呼び出されたメソッドは前提条件を確認する必要があります。
a)事後条件は、戻り値が指定された型であること、またはnull
( 戻り値がnullableの場合)であることのみを述べる/保証する必要があると想定していますか? 戻り値がどのタイプになるかの他に、戻り値が指定された範囲内にあるかどうかなど、他のことを事後条件で指定することはできません(これは type system では検証できません) (例:事後条件でその戻り値を指定することもできません)の範囲内になります)? この場合、クライアントはpostconditionもチェックする必要があるのではないでしょうか?int
10-20
b) それでは、最初の記事は、呼び出されたメソッドが前提条件をチェックしてはならないという主張が間違っていると言えますか?
2.編集
いいえ、事後条件は null チェックだけでなく、何でもかまいません。どちらの方法でも、クライアントは事後条件が検証済みであると想定できるため、たとえば、契約で保証されていると記載されている場合、int 範囲を検証する必要はありません。
a) 以前、コードの脆弱性を軽減するために、呼び出されたメソッドによって事前条件をチェックする必要があると述べましたが、呼び出し元が事後条件を検証する必要があることも理由にできませんでした(たとえば、返された値が事後条件によって約束された範囲内にあることを検証します)呼び出し元のコードの脆弱性を軽減するには?int
b)クライアントが事後条件によって行われたクレームを盲目的に信頼できる場合(事後条件が戻り値がある範囲内にあるなどのクレームを作成する場合、それは盲目的な信頼だと思います)、呼び出されたメソッドも、呼び出し元が呼び出されたメソッドの前提条件を満たすことを信頼できないのはなぜですか?
java - 前提条件付きの軽量 Java ライブラリ?
使用できるときは、グアバのPreconditions
大ファンです。ただし、Guava jar は 2 MB であり、かなり大きくなる可能性があります...
jar の重量が 26k のプロジェクトがあるので、問題は、JDK (6+) 以外に依存関係のない、そのようなユーティリティ クラスを持つ軽量ライブラリがあるかどうかです。作成することはできますが、車輪の再発明はしたくありません。
mysql - Liquibaseの前提条件:列がnull不可であることを確認するにはどうすればよいですか?
列の非 null 制約を削除するための db アップグレード スクリプトがあります。前提条件チェックを行い、ALTER TABLE
null 以外の場合にのみ呼び出したい。
master.xml スクリプトは、スクリプトを追加し続けるプログレッシブ スクリプトであり、すべてが毎回実行されます。Alter Table スクリプトを初めて実行した後は、再度実行したくありません。
これに対する定義済みの前提条件が見つからず、sqlcheck も書き込めませんでした。