Javaプログラマー資格試験(OCJ-P) WEB講座

Javaプログラマー資格試験(OCJ-P) WEB講座

Javaプログラマー資格(OCJ-P)を学習するブログです。

OCJ-P・Javaプログラマー資格をとりたい。
Javaプログラミングの入門者・初心者。

そんなあなたに、Javaプログラマー資格の取得に役立つ本質的な知識を、
分かりやすく解説していきます。

Amebaでブログを始めよう!
私は間もなく業界経験が1年半のプログラマーになります。
この間たまたま某転職サイトのスカウトに登録したところ、
毎日オファーが届くようになりました。



なので、残業過多や劣悪な給与条件で働いている方がいたら、
ぜひスカウトに登録して、自分がどんなレベルなのかっていうのを、
感じていただいた方がいいと思いました。


新しいサイト→Javaプログラマーは見た!
でオファーの内容等公開していますので、
給料上げたい・残業減らしたい という方は、
一度遊びに来てください。
バリデーションはめんどくさい。
バリデーションは疲れる。
バリデーションの単体テストはもっと疲れる。



今のプロジェクトでは、バリデーションの仕様として、
入力チェック仕様書をつくっているんです。


そこに半角カタカナはこの正規表現、全角漢字はこの正規表現。
という風に逐一定義してるんです。


それってどうなんでしょうね?ぶっちゃけ、いらないんじゃね?
って気がします。


 というのも、普通、フレームークにバリデーションクラスってついてますよね?
ValidatorUtilとかそういうの。だいたいあるじゃないですか?
それを使えばいいじゃないですか?


なければ、Commons Validator とか使えそうじゃない?
これって日本語にも対応しているんでしょうか?
日本語は全角とか半角とか漢字ひらがなカタカナあって、
非常に複雑になってきますね。


そういうのをもう全パターン網羅したようなValidatorクラスがあれば、
業務系アプリ業者が買ってくれたりして?


わざわざ自前のバリデーションメソッド作る必要ある?
単項目チェックなんて、どのプロジェクトでもやるんだから、
共通のライブラリを使うのがいいと思う。


むしろ自前で作ることによって、バグ発生の可能性が増える。


実際、今のプロジェクトでもチェック仕様書はあるけど、
会社が用意しているstruts2ベースのフレームークが、
標準で用意しているバリデータを使ってしまっているし。


問題といえば、私がこのフレームークにバリデータがあるって知らなかったこと。


基本設計・詳細設計フェーズのリーダーはシステムには詳しくなかったので、
チェック仕様書をわざわざ作らせた。


もし私がこのフレームワークにバリデータが標準でついていることを知ってたら、
「そんなの作らなくても、標準のバリデータがあるのでいりませんよ!」
と言って止めていたでしょう。



 でも後になってこうなる気がする。
お客さん「チェック仕様はチェック仕様書の通りやってますよね?」
開発  「フレームワークのバリデータ使っています。」
お客さん「それじゃあチェック仕様書作った意味ないじゃないですか。仕様書通り実装しないと仕様書の意味がないですよ」
開発  「わかりました・・・・。」


あまりお客さんが、バリデーションにこだわらない人であることを期待する。
 OCJ-Pでは以下のRuntimeExceptionクラス、
そしてそのサブクラスだけは覚えておきましょう。

簡単な説明をつけておきますが、
必ず自分でAPIを見て調べましょうね。

RuntimeException

 └ ①AarrayStoreException … 不正な型のオブジェクトを配列に格納しようとするとスローされる。

 └ ②ArrayIndexOutOfBoudsException … 不正なインデックスを使って、配列にアクセスしようとするとスローされる。

 └ ③ClassCastException … あるオブジェクトを継承関係にないクラスにキャストしようとするとスローされる。

 └ ④IlleagalStateException … 不適切なときにメソッドが呼び出そうとするとスローされる。

 └ ⑤IlleagalArgumentException … 不適切な引数をメソッドに渡したときにスローされる。

    └ ⑥NumberFormatException … アプリケーションが文字列を数値型に変換しようとしたときに、文字列の形式が正しくない場合にすろーされる。

 └ ⑦NullPointerException … null値をもつオブジェクトを参照しようとするとスローされる。

 └ ⑧UnSupportedOperationException … 要求されたオペレーションがサポートされていないことを示す。

 赤→青→黒の順に重要(よく出る)ので、重要順に覚えましょう。
 覚えるポイントは、英語の意味と一緒に覚えること。

①Array 配列 Store 格納する → 配列に格納できませんよ
②Array 配列 Index インデックス(配列のキーのこと) Out of Bounds 閾値を超える → 指定のインデックスが範囲を超えてますよ
③Class クラス Cast キャスト(変換) → 正しくクラスをキャストできませんよ
④Illeagal 不正な State 状態 → 不正な状態ですよ
⑤Illeagal 不正な Argument 引数 → 不正な引数ですよ
⑥Number 数字の Format 形式 → 数字の形式がおかしいですよ
⑦Null nullの Pointer 参照先 → 参照先がnullですよ
⑧UnSupported サポートされていない Operation オペレーション(操作) → 不正な操作がされましたよ