2011.08.13
yna 開発

validateの話

validateなんて単語は、IT関係者でもなければ滅多にお目にかからない単語ではないでしょうかか?

辞書によると、validateは、(1) 条約などと批准する、とか(2) ~を確認する。と書かれています。同じようなな単語にconfirmとかverifyという単語もあり、ネイティブでない我々には違いが分かりづらいのですね。

verify:
結果が正しいかどうかを確認する。IT用語では、通信回線などで欠損があった場合に検算をして正しく伝送されてかを確かめるという使い方をします。

comfirm:
こちらは、複数の意味があって、確認するという意味より、〈決心・意見などを〉強める,固める。とか、承認とか追認なんて意味に近いイメージにとらえています。ユーザーが行おうとしていることを確認させるといった意味合いです。

さてこの聞きなれないvalidateですが、IT業界(もしかしたらWeb系のIT業界だけかもしれないけど)では、入力チェックという意味に捉えています。なぜ入力チェックといういままで使い慣れた単語があるにも関わらず、こんな面倒な用語を使うようになったのでしょう?

一般にWebアプリケーションが普及するまえには、プログラムはスタンドアローンとか、クラサバ(クライアント・サーバー=CLIENT-SERVER)という形式が主流でした。これらの形式のプログラムでは、入力された値をチェックするのは簡単なことでした。
たとえば商品コードが正しいかどうかは、商品コードが入力された度に、値をデータベースに問い合わせて、正しければ商品名の欄に商品名を間違っていれば、赤字で警告を表示します。ユーザーが正しい値を入力した時点で、保存ボタンを有効にします。

ところがWebプログラミングでは、簡単にことが進みません。
たとえば、入力された商品コードが、整数4桁でといったことは判断が付きます。しかし、入力された商品コードが正しいかどうかとは、データベースに問い合わせないとならないので、ブラウザ側(クライアントサイド)では判断が付きません。
これを何とか解決したのがAJAXという技法です。入力の途中で判断して、サーバーに問い合わせ、その結果をリアルタイム(というは非同期)で、商品名や警告を表示します。

クラサバのプログラムやスタンドアローンなプログラムでは、この入力された結果をそのまま、データベースに放り込んでも問題ありません。しかし、Webアプリケーションでは、そうは問屋がおろしません。Webアプリケーションというは、httpという開かれたプロトコルで書かれています。このため、途中から別のプログラムを使って、偽のデータを入れることができます。このためブラウザ(クライアントサイド)で入力されたものが、今度はWebサーバーでさらに正しいのか、確認する必要があります。入力時ではなくて、POSTの時点で検査するというこがvalidateという新しい?用語を割り当てることになった理由でしょう。

今回は、PHPとjavascriptで透過で使えるようにしたvalidateクラスを紹介しようかと思っていたのですが、cpanで使えそうなライブラリがあったので、そちらを紹介して終わりにします。


https://search.cpan.org/dist/Validator-Custom/lib/Validator/Custom/Guide/Ja.pod

(yna)

一覧に戻る