今後扱いたい話題

とりあえず、これから先、当ブログで取り上げたい話題、取り上げる予定が今のところはない話題を。主に Java 絡みなのは Java 使いの悲しい性です。

扱いたい話題

Servlet 3.0

Java の場合はレガシーなシステムがごろごろしてるので、新しいものを覚えても実務では使えない、ということも多々あるとはいえ、新しい技術は当然知っておくべき。Servlet 3.0 はもうかなり前から採用されているけど、当ブログでまだ話題にしていなかったので、改めてまとめたいと思っています。

Hibernate

ORM としての確固たる地位を保持する重要なテクノロジーJPA の実装と言う形で根強く利用されており、Hibernate を使っているという意識なしにお世話になっているケースも多いはず。そういう意味で、Hibernate を直接使って云々というケースは少なくはなっているものの、基礎は知っておいて損はないと思うので、近いうちに取り上げます。

EJB(Enterprise JavaBeans)

いろいろと調べましたが、やはり EJB 3.0 の登場によって格段に使いやすくなった、という感じのことを書いている人が多い印象があります。以前のように ejb-jar.xml をむにゃむにゃする必要もなくなったし、現在は EJB 3.1 にマイナーバージョンアップして条件によってはインターフェースが省略出来たり、さらに使いやすくなったという印象。やってみるとそんなに難しくないので、これも取り上げてみたい話題の一つ。

JPA(Java Persistence API)

EJB と同じく Java EE 純正の規格で、EJB 3.0 の規格の一部でもある。データベースとのデータのやり取りは Entity Object を介して行うので、表向きは Java の外側でやっている処理を隠蔽できる。当然、旧来の SQL によるデータベースとのやりとりの手法に比べてスマートである。先ほども述べたとおり、JPA の実装としての Hibernate が果たす役割は大きく、もっぱら Hibernate JPA という形で実現されていることが多いので、Hibernate JPA をメインに、さらに先ほどの EJB も絡めたアプリケーションの構築について基本的なことを取り上げる予定。

JSF(JavaServer Faces)

View と Logic の切り分けに主眼を置いたコンポーネントフレームワークJava EE の純正の規格である。JSF の実装はいろいろあり、Tomcat のようなサーブレットコンテナ*1でも利用できるようなタイプのものもある。View の作成に Facelet という XHTML ファイルを用いるので、初めはとっつきにくいかもしれないが、慣れてしまうと JSP よりも格段に能率が上がる(らしい)。

JBoss

JSFEJB といった Java EE 純正の規格を利用するには Java EE サーバを用意する必要が出てくる。代表的なものの一つは Java 純正のアプリケーションサーバである GlassFish で、もう一つの代表が JBoss である(という印象がある)。JBoss プロジェクトは現在は Red Hat の傘下にあり、HibernateJBoss プロジェクトの一部である。どちらを使うのかは好みによるところもあるが、とりあえず当ブログでは JBoss を中心に扱っていく予定。

Spring MVC

Spring は巨大化し、現在では STS(Spring Tool Suite) という専用の開発環境もできて、目下のところは安定して利用されるフレームワークのようである。その名の通り MVC アーキテクチャに基づく開発が容易であり、さらに Spring の肝とも言える DI(Dependency Injection : 依存性注入)コンテナにより、コンポーネント間の依存性をソースコードから排除し、コンポーネントの再利用がしやすくなる。提供される機能は多岐にわたるが、全てをマスターする必要はなく、必要なものだけ覚えればいいので、巨大フレームワークといえど恐れるに足りず、である。ということでこれも取り上げてみたい。

GAE(Google App Engine) + Slim3

クラウドという概念がトレンドになりつつある昨今*2において、その代表的なものの一つである GAE は知っておきたいところである。となれば、GAE 向けのフレームワークである Slim3 は押さえておきたいところ。Slim3 は日本謹製であるが、そういう但し書きもなく世界中で使われている。トレンドに敏感な人は知りたいトピックであろうと思うので、これもゆくゆくは取り上げたい話題。

jQuery

JavaScript を使って DOM で HTML をむにゃむにゃしたい人なら絶対に知っておくべき。今どき jQuery も知らずに Web デザインをやってる人がいるのか知りたい*3くらい。

今のところ扱う予定のない話題

Struts2

Struts の後継として期待された割にはさほど使われている印象が無い。それよりも、レガシーなシステムをむにゃむにゃするためにはむしろ古い Struts の方を覚えた方が良いので、Struts2 については思い切って割愛しようかと考えています。もちろん Struts2 も良くできたフレームワークではあるので、要望があれば少しは書くかもしれませんが。

Seasar2

機能が多岐にわたり、その中から取捨選択して使うという点では Spring MVC に似た部分がある。ただしこちらは日本国内では人気があるが、逆に海外ではあまり使われていない。そもそも Seasar Foundation が国内での地位を確保することに比重を置いていることもあるようだ。国産フレームワークとしては国内では人気が高く、関連書籍も和書がたくさんあるので、勉強してみたいという人はそういう書籍を当たるのが手っ取り早いかと思う。当ブログでは当面取り上げる予定なし(ただし余裕ができれば取り上げる可能性はある)。

Play Framework

Java + Scala で」または「Scala で」Rails っぽいことをやりたい人向けのフレームワーク。しかし当ブログでは既に Ruby on Rails を取り上げてしまっているし、Ruby が使えるなら素直に Rails 使った方がええやん ? という気もする。また、Play を習得するには Scala をある程度使えないといけないので、Java しか知らんという人が新たに Scala を覚えるだろうか ? という疑問もある(実際のところ技術的にそれほど難しくはないが)。とりあえず、当ブログでは度重なる Rubyステマ(笑)をやっておりますので、今更 Play に移行する気もないですし、たぶん話題には取り上げないと思います。もちろん、Scala そのものは「Java VM 上で動いて」「関数型言語の要素を取り入れた」良くできた言語ですので、それはそれで話題に上げるかも。

CakePHP

同じく Rails ライクな、PHP で動くフレームワーク。というか、RailsPHP 版といってもいい。だって Rails を参考にして作ってるんだから。というわけで、Rails がわかってしまえば応用がきくので、強いて論ずる必要性はさほどないかと考えています。PHP には他にも FuelPHP というフレームワークがあって、基本的には両者とも同じことはできるようです。

2013/05/27 追記 : 現在の状況

Servlet 3.0 執筆済
Hibernate 執筆済
EJB 執筆済
JPA 執筆済
JSF 執筆済
JBoss 執筆済
Spring MVC 未執筆
GAE + Slim3 GAE 執筆開始, Slim3 未執筆
jQuery 執筆済

*1:TomcatJava EE サーバではない。

*2:Heroku あたりは有名どころですね。

*3:いや、デザインそのものは別に知識が無くてもできそうだけど、コーディングの段階で絶対に必要になるし、デザインをするにしても知識があった方が断然やりやすいはず。