2009年07月01日

JavaBeans仕様

EJBを作っていたり、関連書籍を読んだりすると、EJBのメソッド名(特に3.0以前)なんかはEJBだからというよりもJavaBeansの仕様からきていると思われる。
いままでJavaBeansの仕様なんてあまり気にしていなかったんだけど、まとめるとこんなかんじ

  • プロパティ名(フィールド名)の先頭を大文字にしたpublicなアクセッサメソッド(getter、setter)を用意する。
  • getterの戻り値がbooleanの場合はisXXXというアクセッサメソッドになる。
  • フィールドはprivateで定義する
  • getterの戻り値、setterの引数はフィールドと同じ型
  • publicな引数なしコンストラクタが必要(デフォルトコンストラクタでも可)
  • フィールドはSerializable可能である(またはprimitive型)
  • クラス名はXXXBeanという名前にする。(←これは慣用的)

というわけで、結構厳しい仕様が存在するんですが、この仕様を守っている人がどれだけいるのであろう。
うちの社内ではほとんど守られていない模様...というか、JavaBeans仕様があることすら知らない人が多いのではないだろうか。orz

本当はこの仕様を守っていないと、再利用性が上手く出来ず、
  • JSPでJavaBeanをタグやEL式利用したが、指定したプロパティの値が正しく取得できない
    →そのためスクリプトレットで直接メソッドを実行
  • Serializableではないため、セッションが退避やリモート環境にBeanを持ち出したときに例外が発生
    といったことじゃないかな。

JDKにもjava.beansパッケージが存在するんで、再利用性を考えたJavaBeanであれば正しく使用にそって使うべきなんだよね。
でも社内でこんなことを指摘すると、『単なるPOJOだから従わなくてもいいんじゃ〜』または『動けば正しい』というご都合主義から文句いわれそうです。
(だったら、JSPとかで再利用とかするのをやめればいいんじゃないかな...)

EJBやJPAに関しては、POJOに対してアノテーション付与で作れてしまうので、忘れがちだがやはりJavaBeans仕様に従ってプロパティを定義するのが『お作法』というもんでしょう。
posted by aki at 18:16| Comment(0) | TrackBack(0) | Java | このブログの読者になる | 更新情報をチェックする

HTTP論争

このあいだ、社内で他人が作っているRESTfulサービスの問題点を指摘してみた。
  • URIのパスにリソースの分類ではなく実行する処理(機能)を使っていた。(リソースのリストが欲しいから/list/と書いていた。)
  • リソースの取得にGETではなくてPOSTメソッドを利用していた。
これに対して以下のように答えられた。
  • 動いているんだから正しい
    正しくないのであれば、サーバがエラーを返すべき
  • リソースを取得しているのではなくサーバの処理結果を返しているだけ
    リソースのIDを指定してリクエストをし、その結果がリソースそのものなだけである
  • RESTfulサービスではなく、POX over HTTPだから規約は厳守しなくても良い
    SOAP over HTTPはPOSTでメッセージを取得してくるので、それと同じ
いや、まぁ...なんというか...orz
こちらの指摘内容は、HTTPというプロトコルの使い方が間違っているということであったんですけどねぇ...。

このやり取りをしていて思ったんですけど、RESTfulサービスが脚光を浴びてきたお陰でHTTPのメソッド(GET,POST,PUT,DELETE)を使い分ける風潮が出てきた感じがありますが、決してRESTに使い方に制限があるわけではないですよね。
RESTに携わる人を中心に「本来の意味で使うべき」と言ってい人が多いのは事実だと思いますが、HTTPを使う以上は本来の使い方で使用できるなら使うべきだということなんですよね。

HTTPって利用環境(ブラウザ)がどこでも提供されているので結構汎用的に利用されるプロトコルなんですが、それゆえに使い方を知らずに使ってしまう人(サービスを提供する人)が多いように思えます。
そういう自分も気にしていなかった1人なんですが、JAX-RS関連のMLに参加するようになってW3CのHTTPに関する規約は一通り読み、心を入れ替えたわけではありますが...(^^;

この人って、社内では技術力があるという人で、自分もそう思ってたんですけど、はっきり言ってかなり失望しました
この件思ったことは、
  • 人の指摘はちゃんと受け入れてから自分の意見を主張しないと、間違った思い込みのまま恥ずかしい思いをすることになる
  • 会社とかなんでもそうですが、立場が大きくなればなるほど誤った思い込みが他の人に与える影響が大きく、そうやって組織はダメになるんだなぁと...
特に最近は人に指摘されるよりも断然指摘する方が多くなってしまいましたので、気をつけたいと思います。
幸運なことに、プライベートで自分が師事している先生方はそのような人ではないので、読んで字の如く、有難い限りです。
posted by aki at 18:16| Comment(0) | TrackBack(0) | コンピュータ | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。