goo blog サービス終了のお知らせ 

ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

BREW、PHP、PerlにおけるMVCモデルの統合&UML導入とBREWでアジャイルの関係

2006-02-13 16:18:10 | ケータイ

 そうそう、このブログで書いた、ケータイアプリのBREW、PHP、PerlのCGIにおけるMVCモデルの統合とUMLの導入の話と、「BREWでアジャイル」って話は、実はつながっているので、今回は、その話も書いておこうかな。。と。。

 あ、あと、i-アプリで応用できそうな可能性についても。。




 PHPにおいて、MVCに分けるということは、以前、特集を組んでやってきました
 ちなみに、ここでは、その一覧がリンクされています。

 基本的には、PHPの場合、
  1.VIEWとなるPHPを作成しておく。
    →これは、セッションの値をとってきて、それを表示するだけ
     基本的には、HTML

  2.コントローラーとなるPHPを作成する。
    これは、受け取った値をセッションに入れて、モデルのPHPを呼び出す
    モデルのPHPの値(返り値)などにより、次に表示する画面をLocationで呼び出す
    その際、必要なら、次の画面で表示する値をセッションにセットしておく
    →そーすると、1にいき、セッションから値を見れば表示できる

  3.モデル部分のPHPを作成する
    セッションから値を受け取り(コントローラーでセットされているはず)
    処理したら、次の画面表示に必要な値や結果、次にどの画面を表示するかについての
    情報を、セッションにセットする

ということを、繰り返してやるというお話でした。

 で、このとき、PHPは、Locationでいくつも呼び出されるけど、セッションの中に、値を入れて、どんどんまわしていくので、当時のJTのCMから、カオル姫方式と名づけました。

 基本的に、このMVCは、PERLのCGIでも実現できます
 PHPをCGIに変えるだけです。




 で、BREWの場合なんですけど、BREWでアジャイルに書いてあるように、1画面につき、
画面名_InitAppData()
画面名_HandleEvent()
画面名_FreeAppData()
というのをつくります。

 で、このうち、「画面名_InitAppData()」がVIEWにあたります(というか、VIEWの初期状態に当たります)。

 で、「画面名_HandleEvent()」がコントロールになります。

 で、モデルは、独自に作っていただくことになります。

 初期画面以降の画面変更なのですが、画面部品(テキストコントロールとか)が変わる場合は、別画面と考えます。中身が変わる場合は、このコントローラーから抜ける直前に、領域の値が変わっていたら、もしくは、フォーカスを変える場合、値をセットしてRedrawします(っていうことを、自動的にします)

 のこりの「画面名_FreeAppData()」ですが、これはJavaにはない概念(メモリのフリー)で、Viewならず、コントローラー、モデルすべてについて、その画面に関係したもののクリアとなります。

 で、カオル姫方式である、画面間、さらにMVC間のデータ保存についてなのですが、はじめにウィザードで作成される構造体
いわゆるpMeに、画面間共通の領域をとっておき、その領域は、アプリ開始時
 アプリ名_InitAppData()で作成、アプリ名_FreeAppData()で開放します。

 で、さらに、細かい話(画面における部品の持ち方、画面切り替え制御方法)などについて、BREWでアジャイルで触れる予定です。いつやるかわかんないけど、暇になったとき。。
(見る人、すくなそうだったんで)




 じゃあ、この方法をiアプリでやる可能性なんですけど、実は、コントローラーって、画面ごとに持っても、アプリで1本でも、部品ごとでも、どーでもいいんです。

 なんで、アダプターの形で、部品ごとに、返るところを設定しておいても、だいじょーぶ。

 このモデルは使えます。
 あと、細かいところに関しては、ウィリアムのいたずらが、暇になったら検討します。

 いや、いま、忙しいのよ。。番号振ったり、印刷したり(^^;)

 。。って、たいした仕事をしていない(^^;)





 で、このMVCモデルの形に落とし込むと、

・VIEWは、結局HTMLで表現でき
  (BREWの場合、IHTMLVIEWERを使う)、

・コントローラーは、上記のようにどうでもよく??、

・画面間共通領域が、
   PHP、CGIの場合セッション、
   BREWの場合、上記のpMeにもつ、共通領域になって、

・あとは、モデルをUMLで作ってもらえばいいことになります。。。

あ、そうそう、UMLのクラス図などで、表現したクラスを、Cでどう表現するか。。。
書いておいたほうがいいかもね(^^)




 てなかんじで、この手の話は、今後、関連していきます。
 こうごきたい。。なのかなあー??



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ケータイの標準アーキテクチャをMS、Symbian、ノキア、コナミ、スクエニ等で決めるらしい

2006-02-13 13:16:18 | ケータイ

 以下のニュースによると

携帯ゲーム向けの標準アーキテクチャ、策定へ
http://slashdot.jp/mobile/06/02/12/0648219.shtml


Tech Giants Tackle Mobile Phone Gaming
http://www.pcworld.com/news/article/0,aid,124689,00.asp

 ケータイの(つーても、携帯電話?)のオープンアーキテクチャを、マイクロソフト、ノキア、サムスン、スクエアエニックス、コナミなど、その他いっぱいで決めるらしい。。

 って、これ、APIレベルで決めるのかなあ。。

 それとも、ウィリアムのいたずらが、このブログで展開しようとしている、フレームワークまで考えようとしてるのかなあ。。

 いや、ウィリアムのいたずらは、このブログで、

 ケータイのBREWも、PHPも、PerlのCGIも

・同じ、MVCのフレームワークで仕様書を作成し、
   →そのフレームワークが、カオル姫方式

・実際のプログラムは、個々の言語、プラットフォームにあわせて作成
  →そのとき、仕様書からプログラムに落とし込む自動化ツールをご紹介

・そーすると、モデル部分に関しては、UMLを使ってできるし

・BREW,PHP,CGI、i-modeすべてVIEW部分では、HTMLを使えるので

統一的な、MVCモデル、UMLを使った開発方法を提示できる。

つーことを、今書こうとしているんだけど。。。

う、マイクロソフト、本物のウィリアム(ウィリアムの略称は、ビル)
にさきを越されてしまう(>_<!)

やばやばあ。。。

と思ったら、上記、スラッシュドットに記事によると

2006年の後半には最初の参照実装が出来上がる予定である。

あ、そう。まだまだ、さきだね。
それに、たぶん、フレームワークの話じゃなくって、APIレベルだろうから??
このブログのネタはあると(^^)

 安泰安泰。

 でも、早く書いたほうが無難かな。。そのうち、誰かかいてくるだろうから、

 ブログネタに使えなくなりそう。。。

 。。でも、みんな、こんなマイナーネタで、みてくれるのかにゃー(^^;)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

手動トラックバックを貼るプログラムをJavaScriptで作ってみる

2006-02-13 00:29:00 | JavaとWeb

 以前書いたブログ、 ファイル同士で、トラックバックができたら、文書管理上、便利じゃないかと・・で、その方法を実現するには、結局以下の3つのプログラムがいります。

1.ファイルからファイルへ、手動トラックバックを貼るプログラム
2.トラックバックを貼る要請が来たらそのデータを受け取って、保存するCGI
3.2で受け取ったトラックバックを、まとめて表示するCGI

で、今日は「1.ファイルからファイルへ、手動トラックバックを貼るプログラム」について




■■ 手動トラックバックを貼るプログラムをJavaScriptで作ってみる

 このまえは、ノートパッドでかいてたけど、今度はちゃんと、フォームに値を入れれば、トラックバックが貼れるというのを、JavaScriptで作ってみたいと思います。

 実験した結果が、 「ケータイのBREW開発でアジャイル」って、みんな見てくれるかニャー。とりあえず目次だけ
へのトラックバックです( 「ウィリアムのいたずらBREWページ (ウィリアムのいたずらWeb) 」がそれ)

で、プログラムは、以下のようなかんじ。これをHTMLファイルとして保存する。
<html><head><title>汎用トラックバック</title></head>
<body>
<script type="text/javascript">
<!--
function soshin()
{
    document.FORM1.action = document.FORM1.SAKI_URL.value;
    document.FORM1.submit();
}
// -->
</script>

<form action="" name="FORM1" method="POST">
<table border=1>
<TR><td>トラックバック先:</td><td><input type="text" name="SAKI_URL"></td></tr>
<TR><td>ブログ名:</td><td><input type="text" name="blog_name"></td></tr>
<TR><td>URL:</td><td><input type="text" name="url" ></td></tr>
<TR><td>タイトル:</td><td><input type="text" name="title" ></td></tr>
<TR><td>内容:</td><td><input type="text" name="excerpt"></td></tr>
</table>
<input type="button" value="実行" onclick="soshin()">
</form>
</body>
</html>


(上記の < > ¥は、本当は半角です)

で、実行してみると。。。
う、なんかJavascriptで書いたものを起動すると、「ぴぽ」とか音が鳴って、なんか、プロテクトを解除してやんないと、うごかないみたいだ。。

 で、そういうのを、出さない方法って言うのが、ここに書いてあった。
ローカルでJavaScript実行時の警告を回避する方法
http://www.ncfreak.com/genta/wiki.cgi?page=WinXP+SP2+%B7%D9%B9%F0%CC%B5%A4%B7%A4%C7%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%BC%C2%B9%D4


 ということで、まあ、JavaScriptだと、メッセージが出て解除しないと生けないケースもあるけど、上記のやりかたで逃げられるので、これでいいや。。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする