「企業文化を創る究極のエンタプライズソフトウェア開発」の聞いてきた内容(個人的には異議あり!)
http://blog.goo.ne.jp/xmldtp/e/f7dcaec498107f63d8ffc21270a1dbb5
の話の続き。そもそも、会社の要望が、こう変わったんじゃなかったっけ?
・デザイナーでもユーザーでもだれでも、短時間でその場で作れてレビューできる
GUIが必要になった
・どんな端末でも、ある程度すぐに使えるようにしてほしい。
・短期間で、それほど難しくなく開発してほしい
だれか優秀な人が短時間で出来たとしても、その人に頼ってしまう。
また、先輩から後輩に教えるというのでは、技術が陳腐化する
最新技術を取り入れながら、爆速に開発するには、
みんなが、開発できる必要がある。
そこで、ちょうどいいかんじに出てきたのが
HTML5
で、HTML5なら、まあ、だれでも(ツールとか使えば)かけるし、
PCでもiPadでもスマホでもみれるし(なのでFlashあうと)・・
スマホファーストにして、スマホのとくにオフラインのときの
設計から考えていけば、まあ、PCでもタブレットでも、
見栄えが多少変かもしれないけど、まあまあ、いいかの画面になる。
そこでHTML5がでてきて、GUIに凝れるようになり、デザイナーさんに
画面を頼るようになった・・・
・・・ら、いままでのStrutsのような、画面にタグを入れる形式だと、
デザイナーさんだけで完結しない。HTML5の画面をプログラマがStruts
タグに代えなければならない。ここで時間ロスがでる。
そこで、画面とサーバーを完全分離するため
1.画面側はAJAXを使って、データをサーバーからとってきて、
その内容をJavascriptでセットする
2.サーバーは、GET/PUTの引数をもとに、データを返すだけ
という形にしたくなった。
そこで、1に対してRESTが、2の返すデータに対してJSONが
使われるようになった。
こうなると、もう、画面だけで、動きは完結するジャン!ということで、
SPAという考え方が生まれてきた
そこまでくると、画面に動きを持たせたくなり、これが行いやすい
JQuery
が流行るようになる。そして大問題が起こった
JQueryだらけになり、よくわからん・・・
そこで、このプログラムの汚さを回避する為、
クライアント側のJavascriptにフレームワークを導入するようになった。
ここでフレームワークがいろいろ出てきたが、AngularJSの
・ディレクティブにJQueryを書きたければおしこめ
・そこでタグ等を定義し
・基本的にはタグは書くけど、JQueryを各プログラムにいれない
という考え方が美しく、人気になった。
そうなってくると、サーバー側もJSON形式を返しやすいフレームワークが求められる。
それまで日本ではStrutsが人気であったが、Strutsは、どちらかというと、Strutsタグ
をいれてビューまでつくるのに向いているもので、JSONで書き出すには無駄が多い
(かけないわけではない。ただし、一般的なプログラマが気づくかどうかは?)
で、もっと単純にJSONにできないかというと・・・
サーブレットでもいいんだけど、まあ、Javaのほうで、ラブリーなものができてきた。
それが
JAX-RS
ここまでくると、JavaのMVCは、どうあるべきか論がでてくる。
JAX-RSを使って、RESTをベースにしたもんを考えるべきか
いやいや、Strutsでしょう(というのは、日本だけ?とくにStruts1を言うのは)
サーブレットでよくね?
・・・これらの議論をまとめようというのがJSR 371(MVC 1.0)
だと思っている
なんで、HTML5の出現により、ある程度GUI側の問題は、解決しつつあるという認識
なんだけど・・違うんかなあ?