タグ

検証に関するJHashimotoのブックマーク (22)

  • プログラミングのよくある勘違いはなんですか?

    回答 (7件中の1件目) API仕様の勘違い、でしょうか。「え!?マニュアルに書いてないけど、このAPIのデータ仕様はこんな仕様だったのか!」と問題になってから気づくことがあります。 同様に他人のコードで「こんなデータを送ったらこのAPIは誤作動するよ」というコードもよく見つけます。 APIが正しく動作する入力データを送信するのは、基的には呼出側の責任、ですが「どんなデータでも呼ばれたAPIが適当になんとかしてくれるだろう」と誤った想定で利用しているケースは少くありません。少なくない、というよりかなり多いです。 正しく動作するプログラムには * 妥当なデータ * 妥当なコー...

    プログラミングのよくある勘違いはなんですか?
    JHashimoto
    JHashimoto 2019/08/02
    "十分なデータ検証とはCWE/SANS TOP 25 Monster Mitigation #1で解説されているCWE-20 対策 [2][3]です。"
  • DDDで考えるマイクロサービスのバリデーション - Qiita

    この情報は古いです。リライトしました。 http://hikouki.hateblo.jp/entry/2019/05/31/164944 この記事は CrowdWorks Advent Calendar 2017 の14日目です。 エンジニアリーダーの @hikouki です。 0からDDDでアプリケーションを立ち上げ中ですが、バリデーションの壁にぶち当たったので、 「バリデーション」はどう扱えばいいのか考えてみました。 バリデーション ここでは、ユーザー(外部システム)入力値に対する検証に限定します。 どこでユーザー入力値を検証するべきか ユーザー入力値のバリデーションは全て、Presentersion層で行うべきだと考えました。 理由は、「Application層に来た時点でユーザー入力値ではない」からです。 なので、Application層の引数が不正な場合は、例外(内部エラー)と

    DDDで考えるマイクロサービスのバリデーション - Qiita
  • 日付期間の重複チェック - Qiita

    はじめに 業務アプリケーションでも、予約管理する機能を作成するときがあります。 その時に予約した日付期間が重複しているかチェックするわけですが、日付期間の重複チェックを複雑に記述される方を見られます。 しかし、これには定石のチェック方法があります。 「比較開始日付 <= 対象終了日付 AND 比較終了日付 >= 対象開始日付」 ※条件に、=が成り立っていいかどうかは仕様によります。 別ブログに書いた記事(2008年)ですが別ブログを破棄したので、情報を新たに変更してQiitaに移行しました。 【2019/10/06 追記】 重複するパターンとして対象期間より短いパターン⑦を追加しました。 これによるチェック方法に変更点はありませんが、テストパターンが無いことで誤解を生じさせてしまったみたいです。 また、定石のチェック方法の導き方について書かれた記事がありました。 期間が重複しているかを判定

    日付期間の重複チェック - Qiita
  • ValidationAttributeで開始日と終了日が正常か検証するフィルターを作成する - Qiita

    状況 画面に開始日と終了日を入力するUIがあり、指定した範囲のデータを表示したい。 といったどこにでもある要求に対して、 検索機能はAPIを利用する といったこれもまたどこにでもある要件。 ほしいもの 開始日と終了日が反対だったらAPIに渡る前のバリデーションで弾きたかったので、 開始日は入力必須 終了日が空の場合は終了 開始日と終了日が逆だったらエラー みたいな要件を満たすバリデーションフィルターを作った。 作ったもの 結構ドタバタなコードなので、そのままだと堅いです。 あと開始日の入力必須は余計だったかも。 /// <summary> /// 2つの日付が開始日と終了日が反対になっていないか検証する属性. /// 終了日プロパティにつけて、PropertyNameに開始日プロパティ名を指定してください. /// </summary> public class DateTimeOppos

    ValidationAttributeで開始日と終了日が正常か検証するフィルターを作成する - Qiita
    JHashimoto
    JHashimoto 2016/06/28
    “自分が作る時に他フィールドとの連携記事が少なかったので、参考になれば幸いです。”
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
    JHashimoto
    JHashimoto 2016/02/22
    “Model に付与するデータアノテーションによって、ラベルやエラーメッセージもリソースファイルを使って多言語化できます。”
  • ASP.NET Web API と DataAnnotations でモデルバリデーションする - hd 5.0

    ASP.NET MVC では DataAnnotations を使ってバリデーションを行うのが一般的ですが、 ASP.NET Web API ではどうやってやるのか調べてみました。 Visual Studio 2013 で確認しています。 要件としては以下のような感じとします。 Controller の引数でクラスを受け取り、クラスに対して属性を付与してバリデーションする バリデーションエラーがある場合、エラー内容とともに Bad Request(400) を返す API のパラメーターを受けるモデルはこんな感じ。 public class SampleModel { [Required] [Display(Name = "なにかの値")] public string Value { get; set; } } コントローラーはこんな感じ。属性ルーティングを使っています。 [RoutePr

    ASP.NET Web API と DataAnnotations でモデルバリデーションする - hd 5.0
  • WPF/MVVM/C#/Prism5.0 エラー通知の少し便利な仕組み② -ValidationAttribute- - Qiita

    Prismとは直接関係がないのですが、PrismのErrorsContainerを利用すると少しだけ簡単にエラー通知の実装ができることをご紹介しました。 WPF/MVVM/C#/Prism5.0 エラー通知の少し便利な仕組み -ErrorsContainer- その中で、ViewModelのプロパティの属性に付けられるValidationAttributeに様々な種類があることがわかりました。 MSDNでは以下のURLになります。 https://msdn.microsoft.com/ja-jp/library/system.componentmodel.dataannotations(v=vs.110).aspx ValidationAttributeの種類と用途 簡単ですが、少し整理してみました。 用途分類1 用途分類2 クラス名 属性の指定の仕方(エラーメッセージ部分は適当です) 備

    WPF/MVVM/C#/Prism5.0 エラー通知の少し便利な仕組み② -ValidationAttribute- - Qiita
  • ASP.NET MVC で DataAnnotations のエラーメッセージをカスタマイズ - hd 5.0

    ASP.NET MVC で DataAnnotations の入力値検証エラーメッセージをカスタマイズしようとしたら微妙にめんどくさかったのでメモっておきます。 ASP.NET MVC 5 で確認しています。 方針 リソースファイル( *.resx )にカスタムメッセージを記述し、それを使うようにする DataAnnotations の属性ごとにメッセージをカスタマイズできるようにする 調べると、わりと古いですが以下の日語情報がひっかかります。 お楽しみはこれからだ!: ASP.NET MVCでDataAnnotationsのエラーメッセージをカスタム 自前で標準の属性を継承したカスタム属性を作ってリソースを指定する方法と、属性のファクトリ?的なアダプターを作成する方法が紹介されていますが、前者は確かにいちいちカスタム属性使うよう変更するのも面倒だし間違えやすそうなので、後者の方法を使い

    ASP.NET MVC で DataAnnotations のエラーメッセージをカスタマイズ - hd 5.0
    JHashimoto
    JHashimoto 2015/02/05
    “・リソースファイル( *.resx )にカスタムメッセージを記述し、それを使うようにする・DataAnnotations の属性ごとにメッセージをカスタマイズできるようにする”
  • ASP.NET MVC で条件付きの検証を行う属性とモデルバインダを実装してみた - しばやん雑記

    昔から ASP.NET MVC の検証を条件付きで実行したいと思っていた人生でした。 言葉で説明すると分かりにくいので、ヨドバシのオンラインショップのフォームがサンプルとして都合良かったので拾ってきました。 このフォームの場合、チェックの有無で検証の有無も切り替わるようになっています。これを ASP.NET MVC で実現する場合、殆どの場合は IValidatableObject を実装して、独自の検証を行うコードを書くのではないかと思います。面倒ですね。 地味にこのようなフォームが必要になるケースって多いと思います。仕事で割と出会っているので、今回は気合い入れて条件付きの検証を行う属性とモデルバインダを実装しました。 成果物は SwissKnife.Mvc に突っ込んであるので GitHub にはソースコードが、NuGet にはバイナリを置いてあります。 NuGet Gallery |

    ASP.NET MVC で条件付きの検証を行う属性とモデルバインダを実装してみた - しばやん雑記
    JHashimoto
    JHashimoto 2014/01/09
    "チェックの有無で検証の有無も切り替わるようになっています。これを ASP.NET MVC で実現する場合、殆どの場合は IValidatableObject を実装して、独自の検証を行うコードを書くのではないかと思います。面倒ですね。"
  • .NET Framework の正規表現とメールアドレス検証に悩まされた件 - しばやん雑記

    今週は .NET Framework の正規表現とメールアドレス検証に目いっぱい悩まされました。事の顛末を説明すると以下のような感じ。 正規表現 Regex クラスはデフォルトでは文字クラスの扱いなどが、ECMAScript の挙動とは異なるので悩みました。 もしかして:.NET の正規表現で \d は全角も通る— しばやん (@shibayan) June 18, 2013 コード例を出して説明すると、電話番号のように数値(とハイフンとか)のみ入力可能にする検証を正規表現で書いていたわけですよ。 public class User { // 03-1234-5678 という電話番号を期待 [RegularExpression(@"\d{2,4}\-\d{1,5}\-\d{4}")] public string PhoneNumber { get; set; } } こう書くと、半角数字し

    .NET Framework の正規表現とメールアドレス検証に悩まされた件 - しばやん雑記
    JHashimoto
    JHashimoto 2013/06/19
    "そして、この前日には .NET 4.5 で追加された EmailAddress 属性が、マルチバイト文字列を含んでいても有効なメールアドレスだと判定する仕様だったので悩みました。"
  • ASP.NET MVC で指定した値が入力されているか検証する属性を作ってみた - しばやん雑記

    よく会員登録などのフォームにある、会員規約に同意しますというチェックボックスってありますよね。 ASP.NET MVC でチェックされていない時にエラーを表示する場合、Required 属性を使えば対応出来そうだと考える人は多いと思います。 public class FormModel { // チェックされていない時にエラーになることを期待 [Required(ErrorMessage = "会員規約に同意してください")] public bool Agree { get; set; } } しかし、Required 属性では期待通りに動作しません。 理由は ASP.NET MVC の CheckBoxFor メソッドで作成したチェックボックスは、チェックされていない場合には false を投げるようになっていて、Required 属性は値が存在しない場合にのみエラーを出すからです。 と

    ASP.NET MVC で指定した値が入力されているか検証する属性を作ってみた - しばやん雑記
    JHashimoto
    JHashimoto 2013/05/28
    "データアノテーションと IValidatableObject の組み合わせは多少問題があるので、指定された値が入力されているか検証する属性を作りました。"
  • SQLの制約エラーの詳細を取得する方法 - iakioの日記

    1つ前のエントリで、SQLの制約はエラーの詳細拾えなくて使えないわーといったのが聞こえたわけではないのだろうが、Bruce Momijan(PostgreSQLのCore Developer)がこんなエントリを書いていた。 Matching Server and Client Constraints チェック制約を使うと無効なデータの入力を避けることができるが、ユーザーに対するフィードバックにはあまり役に立たない。1つの改善案は、制約に名前をつけること CREATE TABLE ledger (id SERIAL, balance NUMERIC(10,2) CONSTRAINT "Zero and negative balances not allowed" CHECK (balance > 0)); INSERT INTO ledger VALUES (DEFAULT, -2.00);

    SQLの制約エラーの詳細を取得する方法 - iakioの日記
    JHashimoto
    JHashimoto 2013/05/19
    "チェック制約を使うと無効なデータの入力を避けることができるが、ユーザーに対するフィードバックにはあまり役に立たない。1つの改善案は、制約に名前をつけること"
  • DataAnnotationsだけでの入力検証の盲点

    以前の投稿(ASP.NET MVC RCの入力検証)で、如何にASP.NET MVCのDefaultModelBinder(IModelBinder)が汎用的になったかを取り上げましたね。 で、以前の投稿で見事に見逃してたのが「必須入力ではないけど、入力形式の不正メッセージを表示したいな」というところ。分かりにくいですね。例えば日付フィールドがあってモデルのプロパティはDateTimeなら当然日付形式の文字列じゃないとキャスト出来ないから、入力エラー。数値型ならintで当然アルファベットとか勘弁してくれよ、と。 必須フィールドならRequire属性でいいですよね。キャストに失敗した場合、何もセットされず型初期値(default(T))が入ったままだから、エラーメッセージに「ちゃんと入力してね(ハート)」って表示すれば。それでも、初期値が数値で0だと困る!って時にはNullable<Int3

    DataAnnotationsだけでの入力検証の盲点
    JHashimoto
    JHashimoto 2013/05/03
    "で、以前の投稿で見事に見逃してたのが「必須入力ではないけど、入力形式の不正メッセージを表示したいな」というところ。"
  • UserControlのLabelクリックイベントが起きなくなる: DOBON.NETプログラミング掲示板過去ログ

    題名: UserControlのLabelクリックイベントが起きなくなる 著者: きら 日時: 2013/01/25 9:48:11 ID: 31257 この記事の返信元: (なし) この記事への返信: [31261] Re[1]: UserControlのLabelクリックイベントが起きなくなる Ruku 2013/01/25 18:00:27 [31268] Re[1]: UserControlのLabelクリックイベントが起きなくなる じゃんぬねっと 2013/01/27 7:15:39 ツリーを表示 環境/言語:[Windows7、C#.NET、Visual Studio 2008、.NET Framework 3.5] 分類:[.NET] ユーザーコントロールにラベルを張り付け、そのラベルのクリックイベントでフォーカス遷移を起こしています。 上記ユーザーコントロールとテキストボッ

    JHashimoto
    JHashimoto 2013/01/31
    "どうしても自前でフォーカスの再設定をする場合は、AutoValidate を Disable などに変更しなければならないという知られざるお作法があります。"
  • 最新の GridView なら、、、の裏側

    ASP.NET、Silverlight等、.NET Frameworkの中でもWebに関する技術のTips、情報を主にまとめています。 間があいてしまいましたが。 前回の記事でほのめかしておいた、ItemType プロパティを設定したときになにが起きてるのか、というあたりをちょっとのぞいてみましょう。 まず、GridView の AutoGenerateCollumns プロパティを false にして、BoundField コントロールとして ID、Name、Mail の各項目を追加します。 こんな感じになります。 で、実行して動作を確認すると、、、 こんな動きをします。 ItemType を追加した直後とちょっとちがいますね? さて、BoundField コントロールをすべて DynamicField コントロールに置き換えましょう。 これで動かすと、 はい、ItemType を追加し

    最新の GridView なら、、、の裏側
    JHashimoto
    JHashimoto 2013/01/24
    "DynamicField コントロールは検証コントロールまで自動的に追加してくれるのでクライアント側の検証が動作するんですね。 "(ASP.NET4.5)
  • jQuery plugin: Validation - CSS属性によるフォームの入力チェックjQueryプラグイン - jQuery

    jQuery plugin: Validationは、チェックしたい項目にclassやmaxlength、minlengthなどの属性を定義するだけで、フォームの入力値をチェックしてくれるjQueryプラグインです。 動作環境 言語:JavaScript(jQuery.js) ライセンス:MIT/GPL 機能・特徴 ◇ エラーメッセージの出力スタイル(フォントや色など)を指定可能 ◇ エラーメッセージを日語で出力可能(多言語対応) ◇ class属性の定義例:class="required"         required: 必須         email: Eメールフォーマット         url: URLフォーマット         date: 日付フォーマット         dateISO:         dateDE:         number: 数字     

    JHashimoto
    JHashimoto 2011/05/12
    "jQuery plugin: Validationは、チェックしたい項目にclassやmaxlength、minlengthなどの属性を定義するだけで、フォームの入力値をチェックしてくれるjQueryプラグインです。"
  • 実践的なパターン: テストの容易性を高める設計

    Code download available at:AdvancedWPFDatabinding2008_07.exe(171 KB) Contents Binding in Code Working with Templates Working with an Inherited DataContext Working with Collection Views Working with Hierarchical Data Using Many Controls to Display XML Data Using Many Controls to Display Business Objects One Control to Display an Entire Hierarchy Using Hierarchical Data Templates Working with User I

    実践的なパターン: テストの容易性を高める設計
    JHashimoto
    JHashimoto 2011/03/04
    "より高度なデータ バインドのシナリオを検証します。最終的には、ほとんどの基幹業務アプリケーションに見られる一般的なデータ バインド要件のさまざまな実装方法を理解できます。"
  • jQuery Validate Pluginの解説とValidate 日本語環境用PluginとjQuery Form Pluginとの連携 - くらげだらけ

    前回、フォームをAJAXでうんちゃかするjQueryFormPluginのエントリーを書きましたけど、フォームと言えばValidateですよね。 ってことでjQueryValidatePluginについてもサラサラ見ていたので、こっちも日語Document化したのを書いておく。 で、日語化して書いていたら思ったよりも量が多くて少し適当な感が否めないような感じになっているかもしれません。 必要なさそうなところは一部飛ばしているしー、たまにおかしいところがあるかもしれませんが悪しからず。そんときはコメントくださーい。 あ、あとエラーメッセージ等のローカライズ版と日語環境用のValidateメソッドを新たに追加するスクリプトも書きました。 デフォルトだと半角英数のみとかー、ひらがなのみとかーできないんでー それから、もともとの目的のjQuery Form Pluginとの連携でAJAXなん

    jQuery Validate Pluginの解説とValidate 日本語環境用PluginとjQuery Form Pluginとの連携 - くらげだらけ
    JHashimoto
    JHashimoto 2010/12/03
    全角半角チェック
  • SilverlighrでDataGridへのデータ表示(SQLServer)

    JHashimoto
    JHashimoto 2010/09/09
    WCF RIA Services
  • MSDN Magazine: 入力の検証 - WPF で複雑なビジネス データの規則を適用する

    バインドされるデータ ソース オブジェクトに IDataErrorInfo インターフェイスを実装し、Binding オブジェクトの ValidatesOnDataErrors プロパティを設定すると、バインドされたデータ ソース オブジェクトから公開される IDataErrorInfo API が Binding によって呼び出されます。このようなプロパティ呼び出しから null でも空でもない文字列が返されると、その Binding オブジェクトに検証エラーが設定されます。 TwoWay データ バインドでユーザーがデータを入力または変更すると、次のワークフローが開始されます。 ユーザーがキーストローク、マウス、タッチ、またはペンで要素を操作してデータを入力または編集した結果として、その要素のプロパティが変更されます。 必要に応じて、データがデータ ソース プロパティの型に変換されます

    MSDN Magazine: 入力の検証 - WPF で複雑なビジネス データの規則を適用する
    JHashimoto
    JHashimoto 2010/07/06
    "IDataErrorInfo インターフェイスの実装、ValidationRule、BindingGroup、例外、および検証関連の添付プロパティや添付イベントを使用して、データ検証のニーズに対処する方法について説明します。"