Hatena::ブログ(Diary)

おおたに6号機blog このページをアンテナに追加 RSSフィード

2008-06-17(火)

[]フレームワークフレームワークでも思考のフレームワーク 10:06 フレームワークはフレームワークでも思考のフレームワークを含むブックマーク


思考のカタを身に着ける、こういうのも非常に大事だろうなあと思いつつ、勝間さん最新本買いました。

内容は今までの勝間さんの本の中でも特に考え方・どのように考えるかという点で絞られていて、

自分にはフィットしそうです。ロジカルシンキング系のスキルを伸ばしたいという方にはお奨め



ここで言う思考のフレームワークって、PDCAとかMECEとかそういうのですね。

TOYOTAの5回のWHY(だったっけな)もおそらく同じような枠組みにはいります。他にもいろいろあります。

ブルーム博士の思考の6段階モデルはなるほどーとおもいながら昨日少し読んでました。

「知識→理解→応用→分析→統合→評価」、こういう過程を辿るようです。


こういう思考のフレームワークって言い方を変えればパターンなんですよね。

つまりAさんとBさんが相互に知っている場合には情報の伝達効率があがり情報のロストが少なくなる類のもので、

これが広く知られるようになると常識として知らない人が逆に価値を下げてしまうようなものです。

知っておいて絶対に損はない、そう思う次第です。


ところで川崎丸善で買ったら、知らなかったんだけど講演会の抽選にあたったらしいです。

せっかくなのでぜひ行ってみたいと思います^^


[]AIR1.1 13:09 AIR1.1を含むブックマーク


出ましたね!ようやく日本語も正式対応です。




む。FlexSDKも更新しなくちゃいけないのですね。今日にはFlex SDK3.0.2が出るとのコト。

待ってます、待ってますよぅ〜〜


[][]妄想その6 -昨日のエントリの解。FlexJavaリモーティングをもっともっと簡単に!!!- 13:46 妄想その6 -昨日のエントリの解。FlexとJavaリモーティングをもっともっと簡単に!!!-を含むブックマーク


昨日のエントリBlazeDSDisる(っていうのはうそでBlazeDSで使いにくいところ)」の自分なりの解。

それがこの妄想その6です。

BlazeDSは素晴らしいフレームワークなんですが、(いまんところ)Javaとのリモーティングだけに使いたい

自分にとっては若干重たい。あと設定ファイルはやっぱり少し面倒くさい、そういう人向けの解決方法ですw


簡単にどうやって解決したかというと、


です。


まあモノをみてもらったほうがわかりやすいので、まずはJavaPOJOはこんな感じPageクラス

@Page("login")
public class LoginPage {

	@Amf
	public Navigation login(LoginContext loginContext) {
		if (loginContext == null) {
			throw new NullPointerException();
		}
		if (loginContext.getUsername() != null
				&& loginContext.getPassword() != null) {
			System.out.println("login successful");
			loginContext.setSuccess(true);
			return AmfResponse.to(loginContext);//AMF用レスポンスを返すときはAmfResponseを使う。
		}
		throw new NullPointerException();
	}
}

重要ポイント

  • @Pageでアノテーション指定した値(ここではlogin)
  • AMF通信での呼び出しで呼び出したいメソッドに@Amfってつけること

です。

@AmfはAMF通信から呼び出すことを許可しますよっていうマーカーだと思ってください。

あ、LoginContextってのは単なるPOJOです。Java側とAS側で同じようなオブジェクトがいるだけです。


で、これを呼び出します。まずmxmlの抜粋。


<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300"
	title="従業員管理ログイン" xmlns:employee="examples.employee.*">
	<employee:LoginController id="loginController"/>
	<mx:RemoteObject id="loginRemote" destination="login" endpoint="t2"/>
	//Formの記述が、つらつらある。
</mx:Panel>

ここで、RemoteObjectの記述方法に注目です^^

重要なのはdestination部分。ここを@Pageアノテーションの値(ここではlogin)とあわせておきます。

endpoint指定は適当でいいですw ここではt2としておきます。


で、実際によびだしてみます。

	var context:LoginContext = new LoginContext();
	context.username = view.username.text;
	context.password = view.password.text;
	var token:AsyncToken = view.loginRemote.login(context);
	//リモート呼び出しの結果をごにょごにょ。

これだけ。かんたーーーーん。

設定ファイルも必要ないし、コンパイルオプションも必要なっしんぐです。

ちなみに今までの妄想と同じ枠組みの中でうごいてます。



で、んじゃあ実際何すんねんていう、開発時にやるべきことをまとめると、

  • JavaPOJOクラスを作って、呼び出したいdestinationと同じ値を@Pageの値としてセット!
  • そのクラスの呼び出したいメソッドに@Amfってつける
  • Flex側でRemoteObjectのdestination属性に@Pageでつけた値と同じのを設定!

はい、これだけ。簡単。らーくちん。



ちなみに副次的な効果として、BlazeDSのcoreとcommonしか使ってないので

依存ライブラリも少ないです。


こんなフレームワーク妄想でした。



次回の妄想はFileUploadにもどる予定です。脱線しなければw

nobunobu 2008/06/17 14:16 この妄想っていうのは”実際動いている”ブツですか?(妄想と同じ枠組みっていうのがw)
LoginPageってAS?Java?とかアノテーションとかがよくわからなかったです。
endpointが適当っていうことは、デフォルトでlocalhost見にいったりとかする仕組み
ですかね?

shot6shot6 2008/06/17 15:18 動いてまーす。>この妄想っていうのは”実際動いている”ブツですか?

LoginPageはたしかにJavaだってわかりにくいので補足しておきました。

いや、デフォルトはswfをダウンロードしてきたところと通信なはず(あれ?ちがった???)。いまはローカル環境です^^>endpointが適当っていうことは、デフォルトでlocalhost見にいったりとかする仕組みですかね?