日本文化は外人プログラマーから意外に尊敬されている?
JavaScriptの有名なライブラリーの一つとしてDojoというのがあります。
Dojo Toolkit
今まで私は仕事上はPrototype.jsとjQueryを中心に使ってきたのですが、Spring JSで標準サポートされているし、今さらですがちょっと勉強しておかないといけないと思っています。
それで、恥ずかしながら、今まで「ドジョ」「ドジョー」とか呼んでいて、変な名前だなと思っていたのですが、実はこの単語は日本語の「道場」に由来しているみたいです。*1
他にも私が知っているものとしては、テストカバレッジ計測のEMMAはおそらく「閻魔」由来だと思います*2し、禅関連とか仏教関係とか結構日本語由来の名前を持つ製品やライブラリーは意外に多いみたいですね。
XPの本にも宮本武蔵の話が出てきたと思いますし、達人プログラマーの本にも日本の製造業の「カイゼン」の話が出てきます。外国のPGは意外にも日本の伝統文化を尊敬しているということですね。
日本のIT業界の現状を考えると、欧米に比べて劣等意識を持ってしまうものですが、外国の人は日本の文化に憧れている側面があると言うと言い過ぎでしょうか。隣の芝は青いということもありますが。
実際、個人を尊重する外国の文化だとPG一人一人が個別のオフィスを与えられるそうですが、逆に日本のタコ部屋開発の文化はXPのペアプログラミングとかやりやすそうですし、極端な個人主義ではなくチーム全体の成果を重んじるという文化もアジャイルの考え方と適合します。カイゼンなどはリファクタリングに近い発想であると思いますし。だから、本来は日本の文化はアジャイル開発に非常に向いているのではと思いますね。1000年以上の歴史を誇る日本の伝統文化に対して、ゼネコンSIerのウォーターフォール文化はわずか数十年の歴史しかありません。そういうことから、日本で未来永劫アジャイルは絶対に流行らないと絶望することはないのかと思いました。本来であれば、外国よりももっとよいソフトウェアを作れる文化的な素地は十分にあるのかと思います。(Dojoの話題から、ちょっとこじつけすぎですが。)
*1:ちなみにExt-Jsは、最近Sencha(煎茶)と呼ばれているみたいです。http://www.sencha.com/
*2:以前どこかで読んだ記憶があったのですが、探しても根拠となる記事が見つかりません。私の思い違いな可能性が大ですね。カバレッジツールというのは閻魔帳みたいにきちんとテストしていないとすぐにばれてしまうという意味かと思っていましたが。Emmaといのはごく普通の女性の名前のようです。
RichFacesの部品に対してタグのevent属性として適切な値について
Ajax4jsfの
<h:inputText value="#{user.emailAddress}" > <a:support event="onblur" ajaxSingle="true" reRender="errorMessage"/> </h:inputText>
入力フィールドのフォーカスが外れた時点でAjaxでPOSTリクエストを送信し、バリデーションをかけることが可能です。
おなじ要領で
<rich:inplaceInput inputWidth="180" value="#{user.emailAddress}" defaultLabel="入力してください。"> <a:support event="onviewactivated" ajaxSingle="true" reRender="errorMessage"/> </rich:inplaceInput>
<rich:calendar id="birthDay" required="true" enableManualInput="true" value="#{user.birthDay}" datePattern="yyyy/MM/dd" > <a:support event="onchanged" ajaxSingle="true" reRender="errorMessage"/> <a:support event="oninputblur" ajaxSingle="true" reRender="errorMessage"/> </rich:calendar>
RichFacesの場合event名が通常のhtmlのタグの場合と違って過去形のようになっていたり(たとえばonchangeでなくonchanged)、子タグとして複数の
Seam(JSF)アプリでセルを直接編集可能なテーブルを作成する方法?
MS Accessなどのアプリケーションでは、グリッドで直接値を編集するということが簡単に実現できるのですが、Seamアプリで同じような事がはたして簡単に実現できるのでしょうか?データ中心のレガシーなC/SアプリをJSFを使ってWeb化する際には、実際に要件として問題になりそうなところですね。
確かに、seam-genで自動生成されたアプリケーションでは編集画面や詳細画面などやたらと遷移が多いので、ユーザーの観点からは、もうちょっと便利にならないかと考えるのは当然でしょうね。RichFacesの
- RichFacesやICEfacesなどのJSF+Ajax機構を利用してがんばる(商用JSFコンポーネントは?)
- ExcelやCSVファイルのダウンロード、アップロードで代用する
- Seam Remotingを利用しDojoやjQueryなどのJavaScriptライブラリからサーバーのコンポーネントを呼び出す
- GWT+Seam連携機能を利用する(Ext GWTも利用可能か)
- Flex+Seam連携機能を利用する
- JSON変換機能を別途独自に用意し、Ext Jsなどの画面と連携させる
などが考えられます。もちろん、開発要員のスキルや、性能要件と使い勝手のトレードオフなどさまざまな要素に左右されるため、どれがベストというように一律に決めるわけにはいきません。うまいアプローチが見つかったらまた報告したいと思いますが、現状調査中です。