Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

とあるJava EE 6開発を終えて

はやいもので6月も終わりですね。

5月末時点で開発は終えていて、以降、試験チームによるテストが続けられています。

自動テストやCIの効果があったのか、直接の結びつきはわからないですが、Java EE担当範囲でバグは数件に収まる感じです(連携系は除いて)。

テスト部隊のテストが甘くて少ない、というよりは、やはり色々と自動化したことで無駄な時間が省かれて、実装メンバでのテスト時間を増やすことができたんじゃないかなぁと。なので、そのくらいに抑える自信もあったり(`・ω・´)キリッ

とはいえ、本当の始まりは運用が始まってからなので、これからが勝負なのですが。
それでも一旦、開発という大きなフェーズを終えて一安心しているところです(^^;ほっ

お上の鶴の一声で始まったJava EE開発ですが、終わってみれば自分にとって良い経験になりました。

今まで保守改造案件ばかりで、新しいことを学ぶ機会や自分がそれを駆動する立場になったことがなかったので(-_-;

そんなこんなで、感想をまとめてみます。

※なお、今回はJavaを使う前提という少し特殊な(個人では外しにくい)制約がありました。なので、Java EEが最高なんだぜ!という趣旨ではなく、本来であれば、現在世の中にある様々な技術から、各組織にあったベストなチョイスをするのが良い、と思っています(^^;

JavaでWeb開発って…

ブログの初期にも書いてますが、今回の開発では

ジャーマネ:「JavaでWeb開発やりたいんだけど」

オイラ  :「 (; ̄Д ̄)え?」

という感じで、はっと気がついたら具体的な動きは全て自分のミッションへと変わってました…。

無茶振り…(´;ω;`)ブワッ

もちろん上位層なりに色々と理由はあったようですが。

いずれにせよ私個人の最初の印象は

「うちらJavaまともにやったことないじゃん…しかもWebってあれでしょ…J2EEとかなんとか…EJBとかよくわからん言葉出るやつ」

という負のイメージでした。

_人人人人人人人人人人_
J2EEとかいうやつ  <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄

_人人人人人人人人人人人人人人人人人_
EJBとかよくわからん言葉出るやつ <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄

とか頭に浮かんでしまうくらい…。

で、調べてみると案の定、という感じで、出るわ出るわのJava批判(^^;
(J2EEへの批判だけでなくJava言語そのものへも結構キツイ当たりが;)

わかったことは、過去あったJ2EEというのはお世辞にも褒められるものではなく、その結果として、StrutsSeaser、Play Framework、Springといった様々なフレームワークが台頭した、ということ。

さらに開発言語としてのJava人気が落ちつつあるのか、やはり.NET FrameworkASP.NETまたはASP.NET MVCや、RubyRuby on Railsなどがエンタープライズ領域でもポピュラーになっている感じ。

でも最近ではJ2EEが「Java EE」という名称に代わって、改めて標準として生まれ変わろうとしているものがある、とたどり着きました。
しかも様々生まれたフレームワークの良い部分を吸収している、という。

まあ、辿り着くのはわりとすぐで、書店にいけば

「Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava

いわゆる金魚本が見つかります(^^;

現時点ではJava EE 6の日本語書籍はこれのみ、なのですが、それでも「ちょっと読みながらやってみるかー」という気分になる一冊です。

ちなみに私はここから始めました。

日本語の情報は少なめ?

Javaそのものの情報は豊富ですが、Java EEとなると少し毛色が違って、StrutsやSpringなどに関する情報は多いけれど(あるいはJ2EEの古い頃のとか)、Java EE 6情報は少ない印象でした。

最初の頃に始めたこととしては

辺りでしょうか。各々少し補足すると

TwitterJavaプログラマ界隈の方々をフォローする

まずは詳しい方々の情報に触れるのが良いのではないかと、Twitterで一方的にフォローさせて頂いたり(^^;
(最初は人物を探すのも難しいのですが、時間がたつと何となくコミュニティ的なものが見えてきたり)

そうすると自然とTL上から様々な情報を得ることができて、議論とか、最新の情報とかも触れることができます。イベントや勉強会の情報も入ります。

そして徐々に自身のJavaに対するあまりの知識のなさに不安と焦りが生まれる副作用に襲われ、仕事のプレッシャー次第では必死になります。

Java界隈の方々のブログを読む

最初の頃(今もですが)、Java EE関連でよく参考にさせて頂いたのは

です。

JSFって何?(゚Д゚≡゚Д゚)JPAって何?

みたいな状態だった自分にとって、非常にシンプルなサンプルコードで
技術が紹介されている情報がありがたかったです。

また、当然Java SEの知識も必要で、そのあたりは

でした。何度訪れたことか(^^;(否、現在進行形です)

他にも挙げだすとキリがないのですが、少しずつ知識がついてくると

※今はこちらがメインのようですhttp://backpaper0.github.io/index.html

※今はこちらがメインのようですhttp://zephiransas.github.io/

などなどから関連するものを読んで、EEそのものだけではなく周辺ツールとかテクニックの情報も得られて、ありがたかったです。
GlassFishの管理コンソールまわりやLightFishとかarquillianとか知ったのもこの辺り。JPQLも金魚本にないものを知ったり。

あといつもTwitterでお世話になってる方々(既に上記で既出の方々もいらっしゃいますが)も要チェックです。

それから、ダーってAdvent Calendarの各ブログを読むのもおススメかと。冬休みだったので結構目を通しました(以下は2012年のリンクのみ抜粋)。

思えばこんなちっぽけなブログをOracleの寺田さんが拾って下さり、Java EE Advent Calendarへのお誘いを頂いて(;_;)
それ以降、管理人だった@megascusさんからTwitterで色々アドバイス頂いているうちに、様々な方からも同様にしていただいて。

今回の開発は恥ずかしい話ですが、社内より社外の方々の支援が本当に大きかったです。
この場で恐縮ですが、お世話になった皆様に本当に御礼を申し上げます!!

ありがとうございました m(_ _)m

JJUGGlassFish,WebLogicなどの勉強会に参加する

勉強会なんて行ったことなかったので、怖いところなのかな…おそるおそる、って感じで最初は参加しましたが、基本的には聴講ベースですし、一度も「こわい…」と思ったことはないです。
先日、どなたかがマサカリを手に持ってて少し怖かったですが(^^;

本やネットだけでなく、人の話という形で聞くことでスーッと知識が入ったり、なかなか得られないような経験談や細かい話を聞けたり。

質疑なんかも聞いてるだけで「オイラ今の質問内容も回答も全然わからん…やばい」とか凹みつつ刺激になったりもするし、基本的には良いことしかないんじゃなかなぁと思います。

そしてJJUGGlassFish,WebLogic関連の勉強会ではOracle ACEの称号を持つ@yamadamnさんがtogetterでツイートまとめなどをこまめにされているので、あとから振り返る場合やどんな人が興味持っているのか、を効率良く知ることができます。

他にも色々あるようなので、今後参加していけたらいいなぁと思います。
とりあえず自分が参加した主なコミュニティ・勉強会↓

http://www.java-users.jp/

年2回(春と秋)、JJUG CCC(クロスコミュニティカンファレンス)と呼ばれる大きなイベントがあって、Javaに関する様々なトピックが勉強できます。

また、毎月1回、ナイトセミナーが行われていて、ここでもJavaに関する情報、またはJavaエンジニア向けの有益な情報を学ぶことができます。

  • GlassFish ユーザ・グループ・ジャパン

http://www.coppermine.jp/glassfish.jp/

GlassFishを中心にJava EEに関する情報を学ぶ勉強会が行われています。

http://www.oracle.com/technetwork/jp/middleware/weblogic/community/index.html
GlassFish同様ですが、こちらはWebLogicを中心に、という形の勉強会が行われています。

その他にもJenkinsの勉強会やOracleさんの無料セミナー(WebLogic系やその他)、イベントに色々参加させて頂きました。

以下、過去に自分が参加して書いたものをまとめてみました。こうして振り返ると結構行ったんだなぁと(^^;

海外は情報が豊富!

先に書いたように国内でも情報は多々あるのですが、開発していてすごく細かい壁にあたったとき、中々ヒットしませんでした。

特に純粋なJava EEに関しては。

その一方で、海外における情報量は豊富で、問題の7,8割はStack Overflowなどを中心に解決しました。
(使っているツールのバグというケースもありましたが、それも英語のチケット情報等からわかる)

例えば複合コンポーネントまわりとかは

とか英語でググったり…(^^;

既に多くの方が実践してると思われますが、Java EE 6の開発で国内に情報がない場合は海外を頼るのが今はいいのかなと。そしてそれをブログなどで発信してもらい、国内に展開していくのが今後のJava EEを活性化する1つの道なのかなぁと思います。

不安を潰していく

元々すごい不安症なので、新しいフレームワークをやることに不安が大きかったです。
もうその辺はとにかく小さいサンプルを作って動かしたり、色々やるしかないですね(^^;

例えばJPA(というかO/Rマッパー自体)への性能や変なクエリ変換されない?大丈夫?、みたいな不安は

で書いたような細かめのチェックしたり、大きめのデータを常時使ったり。

JSFはサーバサイドでメモリを食うとか聞いたら

のようにアクセス増えた状況を確認したり。

ベタですが地道にやるしかないのかなぁと(^^;

使ったもの

前に一度整理した時点から大きく変わってないです。

IDEはNetBeans一本でした。これが無償とは…うーむ凄い。
という感じで文句なかったです。

他のIDEとJava EEの相性はわからないのですが、先日のJava Day Tokyo 2013でIDE warなるものがあったらしく(^^;

twitterでよく@masanobuimaiさんがIntelliJを語っていらっしゃるし、Java EEも良さそうな感じなので、一度は触ってみたいです(^^)

そしてJava EE 7へ

ゼロスタートのJava EE開発だったのですが、ここまでに書いたようなことをこなすことで何とか形になりました(^^)

初心者でこうなので、既にJava開発されている方々はもっともっと容易なのではないかなと思います。

自分の場合は本当にEJBって何なの?って単語レベルから始まったので。。。

勉強会で「いまだにStrutsが」という話をよく聞きます。
おそらくEnd Of LifeになっているStruts 1のことを指すのかなと。
http://struts.apache.org/struts1eol-announcement.html

運用系をやっている自分としては保守案件でそこから脱却できないのは仕方がないよなぁ(^^;と思うのが正直なところです。

ただ、もし今から新規の案件をStruts 1で行う、ということがあるのであれば、それはないのではないかなぁと素人ながらに思ったり。

残念ながらStrutsを全く知らないので、Java EEになっても学習コストないですよ!とかそういう良いことは全く言えないのですが、少なくともJava全く知らない人間に比べたら絶対使いこなすの速いと思うので、わざわざEOLとなったものを新規に使うことなく、標準(あるいは他のフレームワークを新たにやるのもありと思いますが)を選択されるのが賢明ではないかなと思います。

自分が使ったJava EE 6自体もリリースからは三年近くを経ており、既に古い技術に位置づけられています。
なんといってもJava EE 7が出たので!

ということで、自分もこれからは積極的にJava EE 7を調べて、将来的に使えればなぁと思います。

というわけで、まだまだChallenge Java EE!できたらなぁと(^^)

けど多分政治的事情もあって一旦Java離れる…かな。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村