Java開発者の皆さん、Hibernateを使うことで、あなた個人はやりやすくなった? 逆にやりづらくなった?

プロジェクト全体の生産性はあがった?

具体的にどんなところが?

あなたの率直な感想をきかせてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/11/11 00:31:28
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント30pt

個人的にはすごく便利になりましたし、実際一人プロジェクトでは生産効率が上がりました。

SQL 直接書かなくて済むのはいいですね。

Eclipse のプラグインで DB からリバースエンジニアリングで設定ファイルとクラス群を自動生成してくれますし。

http://hibernatesynch.sourceforge.net/

以前 Toque を使おうとして設定の複雑さに頓挫してしまったので、これは非常に助かりました。


逆に複数人でのプロジェクトでは自分以外が初体験だったので、習熟までに時間がかかってしまいました。

当時は日本語の資料が少なかったのも合って難儀しました。

もっとも、これは hibernate に限った話ではないと思いますが。

id:MASHMASH

具体的にありがとうございます。

すごく参考になります。

2006/11/10 13:21:16
id:soniichi No.3

回答回数18ベストアンサー獲得回数1

ポイント30pt

http://naoya.dyndns.org/~naoya/mt/archives/001483.html

(url は参考です)

少人数のチームであったので一概に生産性があがったかどうかは言えないのですが、個人的には取得に必要な初期投資を鑑みても生産性はある程度出ていたのではと感じました。

たとえば、SQLインジェクション対応とかイチから作成していたら、単体テストも含めると結構しんどいですし。XDoclet等使えばhibernateも手間が軽減できますし。

ただしある程度経験 or カンがいい人でないと逆に生産性が落ちそうな気がします。

あとはシステム開発の生産性とは別になりますが、使い方が下手だと逆にシステムパフォーマンスが落ちる可能性があるので注意が必要だと思います。

id:MASHMASH

ありがとうございます。

言われて気づきましたが、インジェクション対策もいらなくなるんですね。

大変参考になります!

2006/11/10 14:52:47
id:tatsuparu No.4

回答回数2ベストアンサー獲得回数0

ポイント30pt

Hibernateは使いどころが重要ですね。


設計を主に行っている私としては、

Hibernateをオブジェクトの永続化フレームワークと捉えることで、ドメインモデル,サービス,DAOの設計に専念できるのでラクになりました。

実装を行う場合でも、JDBC等を利用した手動マッピングの手間と間違いが無いのでラクになりました。


HibernateでDAO層の実装を行う場合、RDBをオブジェクトの永続場所と捉えることが基本です。

RDBをデータの集約場所と考えてしまうとHibernateが適用しにくくなると思います。

Hibernateを知らない人が先にテーブルの設計を行い、その後にHibernateを適用しようとすると、無理が出てくる場合もあります。

Hibernateを導入し始めた時は「DBはオブジェクトを永続化するためだけのもの」とメンバーに認識させるのが辛かったです。どうしても「SQLが、、、」と考えてしまいがちです。


私は基本的にすべてのDAOでHibernate実装を行ってみます。その中でHibernateのデメリットが現れる部分については、Hibernate以外で実装を行うという使い分けをしています。

そして、テーブルの設計はクラス設計が済んでから行っています。(ほとんどドメインモデルから生成したスキーマで事足りるのですが)


使いどころを間違えると、「遅い」「面倒」と言った評価を受けるでしょうが、有効に利用すれば必ず生産性と品質は向上するはずです。

http://hatena.ne.jp/

id:MASHMASH

なるほど、見事な使い分けですね。

設計段階から考慮するのですね

2006/11/10 15:01:09

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません