問題タブ [error-checking]
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.
algorithm - 確認コード/番号を生成する方法は?
ユーザーが電話をかけ、電話のキーパッドで確認番号を入力する必要があるアプリケーションに取り組んでいます。
入力した数字が正しいかどうかを検出できるようにしたいと思います。電話システムは有効な番号のリストにアクセスできませんが、代わりにアルゴリズム (クレジット カード番号など) に対して番号を検証します。
要件の一部を次に示します。
- 有効なランダムコードを入力するのは難しいに違いない
- タイプミス(桁の入れ替わり、桁違い)をすると有効なコードを取得するのが難しいに違いありません
- 合理的な数の可能な組み合わせが必要です (1M としましょう)
- ユーザーのエラーを避けるために、コードはできるだけ短くする必要があります
これらの要件を考えると、どのようにそのような数を生成しますか?
編集 :
@Haaked: ユーザーが電話で入力するため、コードは数値でなければなりません。
@matt b: 最初のステップでは、コードが Web ページに表示されます。2 番目のステップでは、コードを呼び出して入力します。ユーザーの電話番号がわかりません。
フォローアップ : 数値の有効性をチェックするアルゴリズムをいくつか見つけました(この興味深い Google Code プロジェクトを参照してください: checkDigits )。
error-checking - エラーチェックの適切な量はどれくらいですか?
パブリック インターフェイスで入力が既にチェックされている場合、プライベート メソッドでこの種のエラー チェックをスキップしても問題ありませんか? 通常、ある程度の経験則があります...
編集:
おそらく、ArgumentNullException はあまり良い例ではありません。なぜなら、両方のレベルでチェックする必要があるが、異なるエラー メッセージを返すという引数を作成できるからです。
ruby - Ruby はどの程度のエラーチェックが適切ですか?
私は Ruby でいくつかのことを実装していますが、どの程度のエラー チェックが適切であるか (または、より正確には、規則によってどの程度のエラー チェックを実行する必要があるか) 疑問に思っていました。
たとえば、配列内の 2 つの要素を交換するメソッドを実装しています。方法は非常に簡単です。
それは本当に簡単ですが、与えられたインデックスが有効かどうかをチェックするのはルビーっぽいですか、それとも不必要なオーバーヘッドですか (私はメソッドが -1 のようなラップアラウンド値で動作するつもりはないことに注意してください)?
algorithm - チェック ディジットの計算に使用するアルゴリズムは何ですか?
数字のリストのチェック ディジットを計算するために使用するアルゴリズムは?
リストの長さは 8 ~ 12 桁です。
参照:
確認コード/番号を生成する方法?
c# - .NET のグレー コード
.NET フレームワークのどこかに組み込みのグレイ コードデータ型はありますか? または、グレイとバイナリの間の変換ユーティリティですか? 自分でもできますが、車輪がすでに発明されている場合は...
error-checking - やり過ぎのチェックエラー?
どのようなエラーチェックを行いますか?実際にどのようなエラーチェックが必要ですか?ファイルが正常に保存されたかどうかを本当に確認する必要がありますか?それがテストされ、初日から問題なく動作する場合、それは常に動作するべきではありませんか?
私は自分自身がすべての小さなことをチェックしていることに気づきます、そしてほとんどの場合、やり過ぎだと感じます。ファイルがファイルシステムに正常に書き込まれたかどうかを確認したり、データベースステートメントが失敗したかどうかを確認したりするようなものです。
どのくらいのエラーチェックをしますか?エラーチェックの要素は、それが正しく機能すると信じているために省略していますか?
「実際には決して起こらないことをテストしないでください」という行に沿ってどこかで何かを読んだことを覚えていると確信しています.....しかし、ソースを思い出せません。
では、失敗する可能性のあるすべてのものに失敗がないかチェックする必要がありますか?それとも、これらの単純な操作を信頼する必要がありますか?たとえば、ファイルを開くことができる場合、各行の読み取りが失敗したかどうかを確認する必要がありますか?おそらく、それはアプリケーション内のコンテキストまたはアプリケーション自体に依存します。
他の人がしていることを聞くのは面白いでしょう。
更新:簡単な例として。画像を表すオブジェクトをギャラリーに保存します。次に、画像をディスクに保存します。ファイルの保存に失敗した場合、オブジェクトが画像があると考えていても、画像を表示する必要があります。ディスクへの画像保存の失敗を確認してからオブジェクトを削除するか、またはトランザクション(作業単位)で画像保存をラップすることもできますが、テーブルロックを使用するdbエンジンを使用するとコストがかかる可能性があります。
ありがとう、
ジェームズ。
php - フィールドが空白でないことを確認するためのエラーチェック?
私のウェブサイトにはオプトインメンバーディレクトリがあります。現在、エラーチェック関数は$ _POSTのフォームを調べて確認しif (!empty($userRealName))
、メンバーをリストに表示できるようにします。
誰かがリストに空白の名前として表示されるまでに約30分かかりました。データベースを調べたところ、その「本名」が 1つのスペースであることが原因であると判断しました。
!empty()
だから、明らかにそれは私の簡単なチェックを通り抜けます。ディレクトリに名前をリストする必要があるユーザーを強制するには、ここからどこに移動しますか?
error-handling - コードを書くとき、エラーをプロアクティブに処理しますか?それともリアクティブに処理しますか?
言い換えれば、エラーを予測してこれらの潜在的な問題を回避するためにコードを書くことに時間を費やしますか?それとも、適切と思われるコードを記述してから、問題ごとにエラーを処理しますか?
私は最近これについてよく考えていて、私は非常に反応的な人です. 私は自分のコードを書き、それを試してみて、正しいエラーに戻り、アプリケーションが期待どおりに動作するまで繰り返します. しかし、私の友人は、各行がどのように解釈されるかを時間をかけて考え、エラーが発生する前に修正することを提案しました。
リアクティブは純粋なプリライブであることを指摘しなければなりません。アプリケーションが稼働する前に、アプリケーションが機能することを確実に確認します。
c - C: パラメータ チェックでエラーをスローするか、ファンにヒットさせるか。
簡単なデザイン (?) に関する質問があります。
私は、これらのような関数がいくつかある単純なプログラムを書いています。
これについていくつか質問がありますが、聖戦を再開するつもりはありません。
に健全性チェックを追加する必要がありn
ますか? その場合、発信者にどのように通知すればよいですか?
float での戻り-1
は奇妙に見えます。
私の他のオプションは out パラメータです
アップデート
これはおもちゃのプログラムのようなもので、何かを練習しようとしているだけです。質問はその事実を超えています。「(OOP)例外なしでエラーを処理する方法」に言い換える必要があるかもしれません。
電話をかける前にテストすることも検討しn
ていますが、あまり好きではありません。
何かご意見は?前もって感謝します。
c++ - コンパイル時のアサートの代わりに実行時のアサートを使用する理由はありますか?
Visual C++ コードベースを確認しているときに、次のような奇妙なことがわかりました。実行時アサート (条件をチェックし、条件に違反している場合は例外をスローする) は、コンパイル時に条件を評価できる場合に使用されました。
明らかに、コンパイラは条件を評価し、効果的に次のいずれかになるコードを置き換えます
何もしない、または
コントロールがその行を通過するたびに例外をスローします。
IMO では、次の理由により、代わりにコンパイル時のアサートを使用する必要がありました。
- コンパイル時に条件違反を早期に公開し、
- よりクリーンな(したがって、より高速で小さい)マシンコードを発行できます
コンパイル時のアサートだけが正しいようです。ここでランタイムアサートを好む理由はありますか?