奥深きJavaScript(Ajax)の世界

今までServlet+JSPの案件ばかり数年間やってきたから、JavaScriptなら大抵理解していると思ってた。実際、Ajaxじみた非同期サーバー通信もやったこともあったから、それの方法が変わるくらいのイメージだった。


実際に調査を始めてみてわかった。俺が悪かった。JavaScriptを甘く見ていた。


確かに「Asynchronous JavaScript+CSS+DOM+XMLHttpRequest」は、今までの同期通信を主としていたWebアプリケーションの常識を覆した。しかしこの際非同期通信云々の部分はどうでもいい。
ソレよりも重要なのは、今までなら(不安過ぎて)使えなかったオブジェクトチックな記述の方法、ライブラリの構築、DOMによる画面表示の動的入れ替え、そしてそれらによって可能になるユーザビリティの高いUIである。


ナニが重要なのかというと、カッコイイ〜とか、凄い〜とか、そう言う嬉しい事ではなく、作んのメッチャ大変と言う悲しい事実。
インターネットでは地図やらカレンダーやらと、Ajaxをふんだんに使いまくったこの画面、工数どんだけかかってんだよと言いたくなる様なサービスが無償で提供されまくっている。今時のお客さんは無知ではないので、そんなサービスをみて「うちの○×もこんなUIにしたら使いやすいよね。」という事になる。


前述のような画面は、インターネットでの広告収入を主な利益としている企業が、競合サービスが乱立するなかで自らのサービスを抜きん出たものにせんがために資源を集中させた結果として公開されているのだ。そんな画面を、数十機能の業務システムに適用せよと言われるかと思うと鳥肌が立つ。でも言われちゃうんだろうなぁ。


Ajaxの画面は今までと同じ工数の感覚で見積もると地獄を見るのは確実。でもだからと言って

客「じゃあどれだけお金をかければ出来ますか?」
俺「まだわかりません。出来た時にわかります。」

って言うわけにも行かない。

じゃあどうやって見積もるのが良いかと言われると…どうすればいいんだろうなぁ。青天井のFP法とかを考えればいいんだろうか。Google Calendarなんて、メインの画面でたいていのことが出来るんだが。どれだけ工数かかったかとか公開して欲しいなぁ。
実装の方法も、1つの画面を1人がするんじゃいつまでたっても終わらないよな。1機能づつパラで走るのか?テストむずそうだな。ってか出来ないんじゃねぇ?画面とバックエンドには分けるとして、画面だけでも1人で作れるとは到底思えん。スクリプト(関数)ごととかなのか?


Ajaxで画面を作ってる会社はどうやってるんだろうなぁ。どうやってるんですか?


×△画面統括プログラマーとかがいて、その人が画面数人、バックエンド数人を上手いこと動かしたら…なんとか作れるかな?ってか、その作り方って何かで読んだような…あ、Joel on Softwareだ。これが一番上手くいきそうかな?