2013/11/09 に行われたJJUG CCC 2013 Fall | 日本 Java ユーザーグループで話してきました。Java の講演者が多い中で HTML5 系の話ということなのか、立ち見が出るほどの大勢の方に聞いていただきました。本当にありがとうございました。
講演の内容を少し補足しながら、ほかにも言いたいことがあったので書きたいと思います。
このエントリでお伝えしたいこと。
- JJUG CCC 2013 Fall にて話してきました
- 発表内容についてのちょっとした補足
早速ですが、発表資料はこちらです。
メンテナンス性の良い Web システムを構築するために Java とフロントエンドでやるべきこと
発表内容については、Java の JSF か JAX-RS を使って開発を一通り経験した場合、普通の感覚のエンジニアであれば気づくようなポイントをフロントエンジニアの目線からまとめてガイドライン化したものです。
これから JSF や JAX-RS を使ってみようと考えている方には、少しは有益な情報になったのではないかと思っています。
概要は以下の通りです。
- フロント側とサーバ側の役割分担を明確にすること。特に JSF は注意。
- JAX-RS
- フロント側は JavascriptMV*系フレームワークで構造化する前提で、REST で作る。
- どれだけのフロントエンジニアの調達
- 教育ができるかが成否を分ける。
- JSF
- フロント側はほどんど何もしない。フロント側は JSF が提供する機能のみで作る。
- フロントエンジニア不在でもある程度リッチな Web システムが構築可能だが、限界はある。
その他言いたかったことをつらつら・・・
フロントエンジニアとしては、JSX−RS を使って行きたいのですが、Struts+JSP 主体の業務系エンジニアが、すぐフロントエンジニアにスキルチェンジできる訳ではないので、今後の業務系システムでは JSF が主に使われていくのかなと考えています。
とはいえ、Struts + JSP から JSF ストレートに移行できるというような単純なものではなく、JSF 独自のライフサイクルやお作法があるため、扱えるようになるための教育コストは掛かると思っておいた方がいいでしょう。
また、JSF でもっとリッチな UI を実現したい場合、Richfaces、Primefaces といった、サードパーティ製のライブラリという選択肢があります。ただし、JSF というブラックボックスの上にさらに大きなブラックボックスを抱えるようなイメージ構図になります。何かあったときに Javascript 側のデバックを行うのは相当な困難が伴うでしょう、ご利用は計画的にといったことでしょうか。
最後に
業務系システムにおいては今後 JSF が使われて行くだろうと先ほど言いましたが、本当はフロント側とサーバ側は JSON などのデータを挟んで粗結合に構築するべきだと思います。そのためこれからの Java の Web 開発の本命は JAX-RS だと思ってます。
今回の JJUG CCC での講演の件、貴重な体験をさせていただきました。JJUG スタッフの皆さん感謝しています。ありがとうございました。