タグ

ブックマーク / cero-t.hatenadiary.jp (2)

  • レビューで鍛えるJavaコーディング力 その1(日付バリデーション) - 谷本 心 in せろ部屋

    現場でJavaのソースをレビューしていると、一目で「問題だ」と気づくコードによく出会います。 しかも、同じような問題をアチコチで見かけることも、少なくありません。 FindBugsを導入したおかげで、そういう問題が多少減ったものの、 やはりゼロになるわけではありません。 、、、ということで、 そんな問題コードに即座に反応できるようになるために、 私が見てきた問題コードをクイズ形式で紹介していきます。 ぜひ皆さんも、脊髄反射でNG部分を見つけてください。 見つけられなければ、適当にブクマでもしてください(笑 では今回は、日付チェックに関する問題です。 問題 以下のコードの問題を指摘し、修正してください。 ただし、問題は複数あることもあれば、全くないこともあります。 /** * 日付が正しい形式であり、存在する日付であることを検証します。 * * @param date 日付を示す文字列 *

    レビューで鍛えるJavaコーディング力 その1(日付バリデーション) - 谷本 心 in せろ部屋
    voidy21
    voidy21 2009/12/25
  • HashMapと無限ループとsynchronized - 谷本 心 in せろ部屋

    「HashMapのputとgetを同時に行うと、無限ループが発生する」という事は Javaエンジニアな皆さんならご存知だと思います。 1. 無限ループの再現 まずは論より証拠、無限ループになることを確認してみましょう。 こんなテストコードを書けば、すぐに再現できます。 public void testHashMap_無限ループ() throws InterruptedException { final Map<Integer, Integer> map = new HashMap<Integer, Integer>(); Runnable runnable = new Runnable() { public void run() { for (int i = 0; i < 1000000; i++) { int key = i % 10000; if (map.containsKey(ke

    HashMapと無限ループとsynchronized - 谷本 心 in せろ部屋
    voidy21
    voidy21 2009/12/14
  • 1