6/8(Wed)
/** FindBugs */ うちのプロジェクトのソースにFindBugsかけてみました! が、あんまり致命的なのは見つかりませんでした(T_T) 見つかったのは、以下のようなやつ。 1) hoge.equals(null) hogeがnullでないときは、常にfalseを返す。 hogeがnullの場合は、NullPointerExceptionになっちゃいますね(^^; 2) if(hoge != null || hoge.equals(moge)) hogeがnullでないときは、if文の中身はtrueとして扱われますが、 hogeがnullの場合は、||以降が評価されて、 やっぱりNullPointerExceptionになっちゃいますね(^^; 3) switchのフォールスルー(breakの書き忘れというやつ(^^;) case 0: ... break; case 1: ... case 2: ... break; とか。 4) new Boolean(blnValue)ではなく、Boolean.valueOf(blnValue)を使え これは、APIリファレンスを読むと明記してあるのですが、 パフォーマンス上、後者の方が有利なようです。 (きっと、staticで確保してあるやつを返しているに違いない。) 5) Mapの逐次処理がヘン Map mp = new HashMap(); // ダメ出しされたやり方 Iterator ite = mp.keySet().iterator(); while(ite.hasNext()) { Object key = ite.next(); Object value = mp.get(key); } // 望ましいやり方? Iterator ite2 = mp.entrySet().iterator(); while(ite2.hasNext()) { Map.Entry set = (Map.Entry)ite2.next(); Object key = set.getKey(); Object value = set.getValue(); } ということのようです。 後は、こいつはstaticにすべきだとか。その他色々。 とりあえず動かしてみて、後から知ったのですが、 FindBugsはソースを解析しているのではなく、 クラスファイルを元に解析しているのだそうです。 恐らく、静的な解析ツール(CheckStyleとか、PMDとか) よりも、多くの情報を与えてくれるのだと思います。 まあ、そういう中身はどうでもいいという人も、 あっさり使えるツールなので、試してみてはいかがでしょうか? /** Spring Framework */ ちょっとだけ触ってみました。 これも知ってから、ダウンロードして試すまで、 えらい時間がかかったなぁ。。。 触ったといっても、ほんと触り程度で、 DIとか、AOPってのはそういうものかあ。 というのを体験した感じ。 ぼこぼこクラスが増えるなぁ。。。 普通の人に理解してもらうのは大変そう。 流行ってるっていっても、それはアンテナの高い人の中の話で、 普通の人はHibernateすら知らないのだから(T_T) /** Selenium */ ついでに、こないだオレンジニュースに載ってて、 ちょっと気になってた、Seleniumってのを少しだけ触ってみました。 これまた少しだけ(^^; webアプリケーションテストツール seleniumがヤバすぎる Selenium本家 Web画面の自動テストって、こんなやり方もあるんですね。 そういえば昔、同じようにフレームで分けて、 ボタンをちくちく押していくと、フォームに値をセットしたり、 ボタンを押したりっていう、ショボい仕組みを作ったことはありますが、 ここまでシステマチックに出来るとは、本当に驚きです。 紹介者が言っているように、かなり「ヤバすぎる」かも知れません(^^;6/7(Tue)
/** FindBugs */ 去年の7月にCheckStyleを試したときに、ついでにこんなんあるんだ っていう感じで、ちょっと興味を持って以来、 全く試す機会も根性も無かったのですが、 今日ちょこっとやってみる根性が芽生えました。 やってみれば簡単なのでした(^^; 以下、WindowsXP with JRE1.4.0での実験結果。 1. FindBugsのプロジェクトページから、 最新版(今日時点では0.8.8)をダウンロードしてくる。 2. アーカイブを解凍 3. bin/findbugs.batを実行 (Unixな環境の人はfindbugsを実行かも) 4. GUIが立ち上がるので、上段でプロジェクトホームディレクトリを設定、 中段でソースディレクトリを設定 5. Find Bugs!ボタンを押下! ってな具合にやると、レポートがGUI上に表示されます。 日本語で指摘されたり、英語で指摘されたりするようですが、 多分、たいした英語ではないだろうし、辞書引き引き読めばいいでしょ(^^; 時間も、知恵も、根性も、さしていらないツールなのでした(^^;; 効果があることは、外の情報元を見ていれば分かるので、 早速明日自分のプロジェクトのソースをかけてみようと思います。 半分楽しみ、半分怖いもの見たさ?(^^;; ちなみに、JavaWebStartバージョンってのが、 ホームページの中ほど(Try FindBugs now on your project!ってとこ)にあるのですが、 こいつは、5の手順までは行くのですが、 なぜかレポートが表示されませんでした(T_T) まーなんかがイカンのでしょうけど、あんまり気にしてると胃に悪いので、 とっととダウンロードしてしまいましょう(^^;6/6(Mon)
/** 大量データ作成に光明 */ あくまで僕的にはってことですが(^^; いままで「大量データを作成する」っていう作業には、 1. Excel → Insert文 → データベースに投入 2. Excel → CSV → データベースのツールで投入 というパターンしか持ち合わせていませんでした。 もちろんそのために、 ExcelマクロでInsert文を吐き出してみたり、 OracleデータベースからSQL*LoaderのControlファイルを生成してみたり、 それなりの努力はしてきました。 余談ですが、DB2ではimportコマンドっていうのが、出来が良くて、 CSVの入出力を簡単に行うことができます。 Oracleも、この辺見習って欲しいところです。 db2 import from hoge.csv of del insert into hogetable とか、 db2 export to hoge.csv of del select * from hogetable とか。 まあ、DBUnitを使えば、ExcelファイルとデータベースとのI/Oが 比較的簡単にできるので、こっちの方が主流になるかも知れません。 もしや、文字コードの問題とか潜んでそうですが。。。 (そもそもダサいことに、まだそういうツールを装備してないんですが。。。) でもって本題に戻ると、「大量データを作成する」っていう作業の 3番目の方法が、実はこのプロジェクトにあったってことで、 まあ、言ってしまえば大したことはないのですが、 データを「増幅」するということです。 いまさらそんなことに気づいたのかよ。おせーよ。 という意見はさておき。 どうでもよいようなデータを大量に作るとき、 一つのデータをコピーして、キーを書き換える という作業をしていることに気づきました。 つまり、元データ + キー情報さえあれば、 大量のデータを手軽に作成することが可能になります。 いままでキー以外の情報も、えっちらおっちらExcelで作成していたのですが、 キーのみであれば、Excelで作成するにも手軽ですし、 また、プログラム等で生成するのにも便利かも知れません。 とりあえず、まだ発想だけで、 たまたま新人がうちにいるので、 固定のテーブルの固定の項目をキーとして扱うような、 簡単なプログラムを書かせていたりします。 もしかしたら、 元データ + キー情報に、キーの位置情報(カラム名 or カラム名 + 桁数: 1〜5Byte目とか) ってのを加えれば、汎用化でき、他の現場でも活かせるようなツールになるかも知れません。 ちなみに、今日早速大量データ(といっても600件)を作成する機会があったのですが、 汎化できていない上に、そもそも動いていないので、 仕方無く、2の方法でデータを作成しました。。。 残念!6/5(Sun)
/** なんのこっちゃ */ 最近、「もう土曜日終わりかぁ」が口癖らしいです。(日曜日でも可(^^;) 多分、自分の納得がいくような時間の使い方が出来てないことに対する、 グチの一つなんでしょうけど、何が納得行くかっていうのも、 人それぞれで難しいところではあるように思います。 毎日終電帰りでクソ忙しかった時は、 「忙しいし、何にも出来ないや」 で済んだのでしょうけど、なまじ時間が出来てくると、 逆に難しくなる。 ほんの一年前まで、一所懸命やってたことが、 一所懸命できなくなってる。 「忙しい」という最もありきたりな理由を盾に、 すっかり骨抜きになってしまったのか? まあ、あんまり考えても仕方ないようなので、 「とりあえず出来ることをやってみる」 ことに尽きるんでしょうね。きっと(^^; /** フラメンコ鑑賞@町田 */ 今日午後から夕方にかけて、ひたすらフラメンコ見てました(^^; この間平塚のオリンピックシティーでも、 フラメンコ発表会をやっていたのですが、 いかんせんカンテ(歌い手)の声が恐ろしくヘボくて、 せっかくの踊りが台無しになっていたので、 フラメンコに対して全く消化不良を起こしていました(T_T) が、今日はビブラートのよく効いた声を出す情熱的なカンテと、 ギター三人衆をバックに、すばらしい踊りを見させてもらいました(^^) いかんせん、僕は映画とか、劇とか、ピアノコンサートとか、 そういうののなんでもそうなのですが、 なぜか眠くなって寝てしまうんですね(^^; 今日も漏れなく眠くなってきたんですが、 「これはさすがだなぁ」 と思う演技に対しては、さっぱり眠くならないのです。 なにか、素人的第六感を刺激する何かがあるのかも知れません。。 /** インストール読んでみました。 */ これまたいまさら感が多大に漂ってますが(^^; 一昔前に話題になったアレです。 内容的には、女子高生×今っぽさ×アレゲっぽさ=なんか面白ぇ って感じですが(ワカランっつーの(^^;) 当時の女子高生が書いたとは思えない、日本語の深い表現が使われていて、 その辺もまた、なかなか楽しむことができました。 適当に読むにはちょうど良い分量で、 値段も1,000円とお手ごろなので、(ちなみに僕は古本屋で550円でゲット!) いまさら感を感じない人であれば、読んでみるのも良いかも知れません。