私は、JavaとJavaScriptを組み合わせた私の最初のアプリケーションに取り組んでいます。それはより多くの成長するので、いくつかの適切なエラー処理を実装するための時間です。しかし、正直に言うと、私はゼロの経験を持っています。
私のアプリケーションは、単にユーザーがデータベースに格納されている異なるformularsを埋めることができます。フロントエンドのために、私は角度を使用しています。データベースには、Hibernateと春と協力して、MySQLのです。
いくつかのチェックは、ユーザーが戻ってより10年以上存在しない日付を入力した場合の検証例えば、フロントエンドではすでにあります。しかし、私が考えることは型チェックのいくつかの種類です。例えば、場合受信した値は本当にブールあるとされていない場合、エラーをスローします。
質問は:
どこでこの型チェックが実行されなければなりませんか?すでにJavaScriptを使用してフロントエンドですぐにデータベースに受信した値を追加する前に、またはバックエンドで(「typeof演算」のことを考えて)?そしてそれは、ログファイルに状態コードまたは書き込みエラーHTTPを使用して良いですか?
たぶん、あなたはあなたのために働くいくつかのベストプラクティスやオプションをお勧めしますことができます。
どうもありがとう!
重要ですここで考慮すべき2つのものがあります。
- ユーザー体験
- システムの安全性
ユーザーのために、あなたは間違いなく早期かつ頻繁に、好ましくは対話的に検証します。たとえば、あなたの銀行のウェブサイトは、あなたのクレジットカード番号に文字を入れることはできません。それは間違いなく検証し、あなたがそれを入力するボックスは、すぐに赤くなります。
バックエンドは、それが潜在的にフロントエンド以外の別のソースから使用することができるのでも別々に保護されなければなりません。また、あなたはおそらく、すべての潜在的なバックエンドのエラーを処理するためにUIの検証を更新することを忘れないように自分自身を信頼する必要はありません。
そこまともな検証ライブラリの多くは、NPMとMavenであるので、ほとんどの検証のためのコードは、両方でそれを維持するために、両端にかなり些細なこと、そしてそのおそらく最も安全なはずです。
あなたは、各コンポーネントを別々常にユニットテストをすべきであり、全体としてシステム全体を心配する前に、独自の権利で、機能の安全を/確保。
あなたは間違いなくすべてのRESTアプリでフロントエンドにバックエンドのエラーを報告するためにHTTPステータスコードを使用して、正しいものを使用してみてください(例:見つからないため、不正な引数、認可されていない、内部エラー)。あなたは、フロントエンドに何をすべきかに関係なく、あなたが処理するために、バックエンドのエラーを持つことになります(例えば、悪いSQL構文、データベース接続に失敗しました)。