Spring BootとDropwizardの比較をしてみました。
記事はこちらです。
以下は自分の意見です。
いまのところはDropwizardの方がいいかなぁというのが結論です。
ソースの比較をするとSpring Bootの方が記述量も少なくて優れているように思えます。
しかし、実際はDropwizardでは迷うことがなく実装ができ、Spring Bootでは悩むことが多かったです。
おそらく、
Spring Bootは多機能で色々なことができるためソースも多く、調査が大変 –> ごちゃついてる気がするのだと思います。
ただ、この感覚は単純にDropwizardの得意な分野で比較したのが理由かもしれません。
ここで、話は脱線しますが、久々のSpringについても書いておきます。
Springに関しては元々大好きなフレームワークの一つです。
ソースもきれいでわかりやすく、非常に勉強になりました。
きれいなソースと言えば、Seasarプロジェクト(特に本体とSaStruts,S2JDBC)もそうでした。
反対にStruts,Myfacesなどは汚いと思いました。
(きれいなフレームワークは比較的に長生きしているので、その点Dropwizardもきれいなので長生きするかも)
今の時代では、当たり前に利用されているSpringですが、おそらく日本では業務で最も早く利用したプロジェクトに運良く参加していました。
それからバージョン3まで仕事で利用し、Spring MVC, Spring Web Flow, Spring Batch, Spring Securityなど多くのSpringプロダクトを利用していました。
しかし、5年ぶりに実装してみて「こんなにめんどくさかったっけ?」と感じました。
Springも巨大になりすぎたのかなと思います。
手を動かしてはいないですが、ずーと追ってはいたので昔の知識で止まっていたわけではないつもりです。
あれからGuiceなど軽量なDIができたこともあり、そちらで十分な気もします。
話は戻して、Spring BootとDropwizardについてです。
Spring Bootは機能過多な気もしますが、それもメリットとも言えるので、慣れてくれば、Spring Bootの方が良くなるかもしれません。
ちょっとしたホットデプロイならできるので、それも少しメリットかもしれません。
(が、完全じゃないので微妙)
ただ、現在の感想としては
RESTfulなアプリを早くシンプルに作るのであれば、自分だったらDropwizardを採用します。
ソースもシンプルでわかり易く拡張もしやすいように感じます。
(いまの時代、単体テストという面だけでいうとDIである必要もあまりないと思っています。)
Spring Bootは機能過多になったSpringプロジェクトをうまいこと使い易くしてくれる可能性がありそうなので、今後に期待しています。
もっと洗練されて昔のSpringのようにシンプルで、使い易いものになってほしいです。