ひがやすを技術ブログ

電通国際情報サービスのプログラマ

プレゼン

今日は、某大手旅行会社のダウンサイジング案件のプレゼン。
Flex + S2のリッチクライアントソリューションです。
出てくる人たちは、技術にあまり精通していない偉い人たちなので、
アピールのポイントを間違えないようにしなければなりません。
10:30開始なので、早目に会社いって資料を作らなければ。
ってこれから作るんですか。(^^;


Flex自体のアピール。Biz/Browserを考えているってことだったので、
相手の顔色を見ながら差別化する。
Flexの提案をできる企業は、今の時点では日本でほとんどいないから、
Flexを気に入ってもらえるなら、高いポイントを獲得できるでしょう。


S2のアピール。Dependency Injection, AOPなんて使っちゃだめだ。

  • 業務ロジックは、特定のAPIフレームワークに依存しない、普通のJavaのクラスで開発できる。
    • フレームワークに依存しないので、Javaのできる開発者だったら、直ぐに開発に取り掛かれる。
    • 学習コストが低い。
    • テストがしやすい。
    • (EJBを引き合いに出す。)
  • データアクセスのロジックは、インターフェースさえ決めれば、実装は書く必要がない。
    • 開発の効率を上げることができる。
    • SQLは自動生成されるが、カスタマイズしたSQLを使うこともできる。
    • データによって動的に変わるSQL文も記述でき、自動生成もできる。
    • Excelでテストデータを用意して、データベースのテストを自動化できる。
  • 業務ロジックを実装するコンポーネントは、インターフェースを通じてのみ相手と会話する、ステートレスであるという強い制約を持っているので、開発者のスキルによってコードがまちまちになってしまうということがない。
    • Stateless BusinessLogicパターンの説明
    • コンポーネント同士の組み合わせは、ハードコーディングされるのではなく、設定ファイルに記述するので、後から実装クラスを変えることも簡単である。仕様変更に強い。
    • 実装クラスをモックオブジェクトに変えて簡単にテストできるので、品質が向上する。モックオブジェクトは、クラスを作る必要もなく、設定ファイルだけで簡単に作れる。

おっと、時間がない。シャワーを浴びて会社にいこう。

くーすに関与していただいた人

くーす本の巻末にくーすをまとめるときに、関与していただいた方のハンドル名をクレジットしたいと思ってます。
トライアルでさまざなな意見交換をさせていただいたid:marrowさん。
Wikiにまとめていただいたid:tpircsさん。
よろしいでしょうか。

S2AMF

FlexでJavaBeansとデータをやり取りする場合は、つぎのように_remoteClassプロパティでJavaのクラス名を指定します。このとき、Flexの完全限定クラス名とJava側の完全限定クラス名をあわせる必要があります。


class examples.flex.Employee {

var _remoteClass;
var empno:Number;
var ename:String;
var hireDate:Date;

function Employee() {
_remoteClass ="examples.flex.Employee";
}
}

この方式がOpenAMFとはあいません。OpenAMFを使う場合とFlex純正を使う場合で、Java側のコードもFlex側のコードも変えたくないので、これは問題です。
おそらく、_remoteClassを指定するとAMFGatewayにはカスタムクラスとして渡されると思うので、S1のNazuna Remotingだとそのまま対応できます。
移植しようかなぁ。S2AMFとして。S2OpenAMFのライバル!!!


追記:_remoteObjectは、Object.registerClass()で登録したカスタムクラスとは違うみたい。AMFGatewayには単にオブジェクトとしてやってきて、_remoteClassプロパティがあるだけとみた。
_remoteClassではなく、Object.registerClass("examples.flex.Employee", Employee);なら、S1でもFlex純正でも動きました。
どうする、id:hoso-kawaさん。