携帯プログラミング覚え

クッキーが使えない「ガラパゴス携帯」でのウェブプログラミングの覚え。2008�N12���̂��炫���������̌�������の記述を引っ越ししただけ。


ここ2週間(コードの作成の最初の日付が12.11だった)、自分自身の教育、および院生の研究の背景知識として、理科大の教員の研究室を検索するためのテキストベースの携帯サイトを自分で作成してみて(完成はしてない)、携帯サイトのプログラミングを構造化プログラミングの視点で体感し、アタマを整理しようとしている。使っているプログラミング言語PHP と HTML である。
僕自身は「構造化プログラミング」ということばで、
  1. 全体の「やりたいこと」をその構成要素に適宜、分解して、
  2. 構成要素の「やりたいこと」の「インターフェース」「動作」を書いて、
  3. おのおのの要素の「動作」に見やすい「呼び出し」と「制御構造」を持たせる
という程度にラフに理解している。この程度のラフな理解は、コンピュータプログラムにできることが
  1. データ領域をメモリ上にアロケートする
  2. データ領域から処理装置にデータを読み込んで演算処理をする
    (プログラミング言語の大抵のテキストがこの部分の記法の定型的で無造作な記述に当てられている。)
  3. 処理装置からデータ領域にデータを書き込む
    (ここに memory mapped I/O も含む。知能の学生は H8 のコーディングで出会う。)
  4. コンピュータプログラムを呼び出す
    (ここではさし当たって、Cの関数をイメージしている。)
の四つしかなく、プログラムのソースコードには
  1. 入力のインターフェース(Cの関数プロトタイプのようなものを想像している)
  2. メモリアロケーション
  3. 「戻り値」(「処理の結果」「欲しい結果」という意味でCの戻り値よりはラフで広い理解。printf("hello"); とかも含めて考えている。)
  4. 「戻り値」を得るための事前の処理
しか書かれていないというラフな理解に基づいている。
だからウェブページの場合も、どの部分がここにあげたどの要素に該当するかを考えて、アタマを整理すればよい。ウェブページの特性を考えると、
  1. ページからページへの遷移(HTTPリクエスト)が「情報処理のシステム」の状態を変化させる。
  2. ページ遷移はなんらかの「選択」「決定」を伴う。
  3. ページからページへの1回の遷移に伴う変数の引渡しは POST, GET メソッド。
  4. 一つの目的のために複数(3以上)のページ間の遷移が生じる。
  5. 2回以上のページ遷移にまたがって変数をキープする仕組みはHTMLの範囲内では無い。クッキーを使う。
携帯向けウェブページの特性を考えると、
  1. JavaScript やクッキーが使えない携帯電話の機種がある。だからクッキーもどきのファイルをサーバサイドに準備しないといけない(多分)。
  2. イベント駆動と考えたとしても、ページ遷移しか事実上イベントがない。
…と、まあ、いろいろとゴチャゴチャ考えたのだが、
  1. if や switch の分岐の前後でソースファイルが2個以上に分かれた「一つのコード」のようなイメージを持っておく(…とベターな場面がそれなりにあった)。
  2. その「一つのコード」の範囲内で変数(というか「情報処理のシステム」の状態)をキープする仕組みを設計しておく。(これがCの変数宣言に相当している)
  3. ページからページへの遷移の直後に「システムの状態」の変化をきちんと記録するコードを書く。
  4. C や fortran では気にならなかった、条件処理分岐の後のコード上の「戻り位置」をきちんと変数化しておく。(Cだと if( ) { } の波括弧閉じの直後(に始まる処理)に相当する部分)
  5. 以上の処理を終えた上で、条件処理の分岐の選択肢を HTML で書き出す。
    (ユーザにはこの「分岐の選択肢+周辺情報」しか見えていない)
[2011.6.18]参考:無状態ネットワーク・プロトコルにおける状態の保存方法および装置 - インターナショナル・ビジネス・マシーンズ・コーポレイション patentjp.com