2011年1月22日土曜日

開発進捗(1/22)

目立った進捗は無し。

テンプレートを入れ子にしても速度が保てる方法を考えていたのですが、
いい案が思いつかない。

思いつかないんで、携帯サイトの作り方について以下のサイトで勉強しました。

http://kachibito.net/web-service/mobile-site-tips.html

http://dspt.blog59.fc2.com/

xhtmlを使ったほうが良い、という話は参考になりました。
htmlベースにして考えていたので、危なかったです。


それによく考えたら、携帯の画面ではそんんなに複雑なことを表現できないので、
テンプレートの多重化はそんなに気にしなくて良い気がしてきました。

ただ、キャリアによって表示を多少分けたほうがよいので、
うまくそれを吸収しながら遅くならないようにする方法は考える必要がありそう。

selfに持たせていた属性の一部をclassに持たせたほうが良いかもね。

2011年1月18日火曜日

開発進捗(1/17)

やったこと:
  ページのhtml部分を別ファイルにして必要になったらimportさせるようにした。
  htmlの各要素のオブジェクト生成は、import時にのみ実行させるようにした。

結果:
  全体的にみると、ちょっとだけ速くなっているようだ。
  起動時間はあんまり変化なし。理論上はほかのページをimportしない分速いはずですが・・・
  考えられる原因:
    初回のフォームの生成が2重処理になっていることが原因か?
      import時に空フォームを生成。
      レンダリング時にリクエストの値をフォームに埋め込み
    あとは、ページが少ないので、1ファイルだけimportする恩恵が少ないこともありうる。

  表記がこなれていないし、オーバーヘッドももう少し抑えられるような気がする。
  テストコードは全然できていない。

進むべき方向をしらべている場合は、テスト駆動型開発って難しい気がする。
デザインがきっちり決まっていないと、テストコード書いても無駄が多いような?

次にやること:
  ・表記やオーバーヘッドを減らすコードを考える。
  ・リクエストの値を簡単にフォームに埋められるようにしたい。
  ・オブジェクトの生成をキャッシュ化しているけど、
   固定文字列を生成するところまでキャッシュ化させられるようにする。
  ・テストコードを整備する。
  ・リファクタリング開始。

2011年1月15日土曜日

開発進捗(1/15)

app.yamlの定義を自動生成してハンドラーごとに呼び出す作戦は、パフォーマンス的に思ったほどの効果はない(とういかむしろ遅くなった)ようだった。そのため、そっちの道はあきらめる。

そうなると、webappでだいたいOKなのですが、中身を細かく見ていくと、無駄に思える機能や使い方がよくわからない機能がいくつかありました。
なるべく起動を軽くしたいので、ソースをコピーして、自分用に最適化。
・正規表現でハンドラーを定義する仕組みは、不必要なので廃止。
 ディクショナリにパスを定義して、リクエストされたパスと完全に一致するパスに割り当てられているハンドラを呼び出すようにする。それにともなって、後ろのパスを渡す処理もなし。
・lib_config.registerの意味がよくわからなかったので、取っ払う。
・googleアカウントは使わない予定なので、login_requierdは、完全に作り直す必要がある。とりあえず廃止。
・webappで使用するモジュールを一つのモジュールにまとめる。
・class RequestHandlerは、htmlを生成する自作モジュールへ統合。
・ビューとコントローラのファイルを分割し、各ビューは対応するコントローラが呼び出されたときにインポートするようにさせる。

ここまでやったのですが、全体にサイトが小さいのでいまいち効果がわからない。
webappをそのまま使ってもとりあえずよかったので回り道をしていますが、
中身をいじったおかげで仕組みが少しわかったので、これはこれでよかった。

ビューは、テンプレートを初回のインポート時に作成して、
以降はテンプレートへのあてはめをしていけば良いはずですが、そうなっていない。
そこを直して、速度を確認していこう。

2011年1月5日水曜日

Google App Engine(Python)のフレームワーク

柴田淳さんのブログを見ていたら、
Ahaというフレームワークを(いまさら)見つけた。

http://coreblog.org/ats/looking-back-2010

なんだか、すごく出来がよさそうなので、参考にしてみることにする。

mercurialをインストールして、
hg clone https://aha-gae.googlecode.com/hg/ aha-gae

んー。コメントは日本語じゃないのかぁ。
でも勉強がてら読んでいこう。