torutkのブログ

ソフトウェア・エンジニアのブログ

月刊ジャバワールド2004.12購入

特集1「Javaプログラミングの”正しい作法”」

は期待外れ。以前のfor Beginnersレベルの記事がどんと特集になってしまった。内容はJava初級者向けというよりは、VB/C言語等の経験者で変な癖のついたJava初級者向けな感じ。悪い例を出して指摘する一見アンチパターン風だけど、パターンとして整理されていないのでたんに愚痴記事になってしまっているように思う。あとはリストと本文が離れているので構成的に読みづらい。内容的に疑問がある個所もちらほら。

  1. 「ほとんどのpublicメソッドにfinal修飾子が付けられています。・・・final修飾子を付けることで、コンパイル時に行われるインライン化が促進されるのは事実です。」とあるが、Javaソースコードからクラスへのコンパイル時にはこのようなことは起きない。HotSpotによって実行時に動的に最適化されるのは確かなのだが、これを「コンパイル時」とは言ってほしくない。public finalな定数フィールドであればインライン化されるが、これは抑止する話ではない。
  2. JUnitの例で帳票出力のテスト時にassertで判定していない例を出して得意げに「JUnitを使う意味がありませんよね。」と閉めいているが、帳票出力のようなUIに関わるテストの自動化は非常に難しい。それをどうしたらよいか解決策を述べていない。JUnitで扱えないUI系のテストが一番大変だったりするのだが・・・。
  3. 「この1行のコードで行っているのと同じ処理を、if文を使えばもっとわかりやすいかたちで書けるということです。」この1行のコードというのは3項演算子なのですが、えっ、まじですか?

特集2 「EJB3.0の実像に迫る」

は期待どおり。今月号より新装で特集1を見てショックを受けたが、こちらの特集で持ち直し。EJB3.0では、

  1. POJOベースのBeanになり、Entity Beanを直接シリアライズ転送すればDTOが不要になる、
  2. CMPとJDOとを統一するらしい
  3. EJBのお約束のインタフェース群や基底クラスがアノテーションに記述することで廃止になる。ただしコンポーネントのinterfaceはビジネスインタフェースとして残る(POJI:Plain Old Java Interface)。
  4. トランザクション、セキュリティもアノテーションで宣言する形に変更
  5. EJB QLは残り、拡張される
  6. EJBへのアクセス(クライアント側)もアノテーションで簡潔に記述できる

となるらしい。