コンポーネントを貼り付けていく感じということは
JSFもHTMLデザインの再現は面倒・・・?
たけしさんやってみてどうでしたか?





.NETで作られているシステムを見る機会があったので、その感想です。

見た感じではHTMLデザインからWebフォームへの移行は手で行っているようだ。
(HTMLのレイアウトを見ながらドラッグアンドドロップでコンポーネントを配置していっている)
これは効率が悪い!しかも、完全にデザインが再現できていないためデザインが台無しだ。
もともと、ドラッグアンドドロップで開発生産性が良いと考えられていたが、
HTMLデザインがすでに存在する場合はその限りではないようだ。
JSPも楽ではないが、HTMLデザインの再現は比較的しやすいのではないだろうか?

「ドラッグアンドドロップで画面を作れるので簡単」

これは、はたして正しいのだろうか?
今までは、プログラマやSEが画面デザインまでも受け持ってしまったために
なんとも泣きたくなるような画面のシステムが数多く誕生した。

そこで最近のフレームワークではMVCモデルが採用されたりしている。
少なくともビューとモデルくらいは分離するのが一般的である。

だが、.NETはそのまま作るとビューとモデルが密接すぎる。
まともな分業なんてありえない。

おそらく小、中規模のイントラくらいにしか使い物にならないということではないだろうか?

初めは.NETもなかなか良いかな?と感じていたが、よく見ると、いたるところに不満が残る。

2号の独り言のような記事が続いてますな。

悪くはないけど、Springと全然関係ない・・・。


ネタねーなー。

初心者が見ると「これの何がすごいの?普通じゃん」
中級者が見ると「すごい!でも、これはどうやってるんだ?!」
上級者が見ると「なるほど!こういうやり方もあるね」

要するに、使いやすくて独創的で先進的。こういうものを作りたいですねぇー。
難しいけど。

昔のプログラミングは「どんなパターンにも対応できる」プログラムが評価された。
しかし「ある機能に特化してなるべくシンプルに作る」ことが求められる時代になった。
すべてを網羅するのではなく、利用者はシンプルな機能を組み合わせて使いましょうということだ。

潔く捨てるのはそれだけではない。ターゲットを絞って、OSやブラウザのバージョンも限定する。
場合によっては、OSすら限定する場合もあるかもしれないが。
いつまでも、Netscape Navigator 4.7とかをサポートする必要も無い。もしくは6も。
Internet Explorer 4.0なんかをサポート知る必要も無い。もしくは5.0も。
思い切って捨てれば、そこに費やされている無駄な労力は品質や生産性になって返ってくる。

って、今はこんな感じで時代が流れてきたよね。
最近流行のAjaxは開発者が無意識に避けていたJavascriptやDHTMLをあえて思いっきり使うことで
リッチなクライアントを実現するものです。

なぜ、JavascriptやDHTMLを開発者は避けていたのでしょうか?その理由としては
・Javascriptはブラウザ間で完全に互換性が無い
・Javascriptはオフにできる
・XMLHTTPRequestという非同期通信をするオブジェクトの存在を知らなかったために
 DHTMLでダイナミックにページを書き換えるデータをとることができなかった。
・HTMLだけで作れば多くのブラウザで利用できる
などと理由はいくらでも思いつきます。

イントラネットのシステムではよくIE5.5以降専用とうたわれているにもかかわらず、
JavascriptやDHTMLはほとんど使われることはありませんでした。
そして、利用者にWebの操作性を強要してしまっていたのです。

これは人間の思い込みから生まれた不幸だったのかもしれません。
Google Mapなどが登場する以前からもAjax(と呼ばれないにしても)を利用したは存在していましたが、
Googleによって開発者は目を覚まされたのかもしれません。

例えばパソコンの電源。
環境のために毎日電源を切ります。
そして次の日の朝また電源を入れます。
環境のためになっていると思ったら実はスリープ状態にして次の日まで
置いておいたほうが消費電力が少なくて済みます(もちろんマシンにもよりますが)
それほどマシンのブートは電気を使うのです。
スリープはある意味「電源をつけっぱなし」です。
ですが、その方が環境によい場合もあるのです。

Springとかコンポーネント開発とかやらなくて良いんじゃねぇっすか。


JavaOneでマイクロソフトの人も言ってたじゃないですか!

「概念レベルと実装レベルのクラスは1対1にする事が望ましい」って・・・

1つのフォームに全てを書けば良いんですよ。スパゲッチーで・・・