inside LDR (1)(mala)

  • LDR(Livedoor Reader)は「APIありき」の実装。まず全APIを先に作り,LDRはそのAPIを使う1クライアント。
  • 例えばBloglinesはAPIを公開しているが,それを使ってBloglinesが実装できるわけではなく,開放されていない機能がある。
  • APIが決まっていれば,サーバ側(クローラとかDBチューニングとか)とクライアント側(JavaScriptとか)で分業できる。
  • LDRでは全データをJSONでやりとりする。扱いやすい。小さい。サーバ負荷が低い。
  • Behavior.jsはhtmlロード時にDOMを解析してイベントをフックする。LDRのように画面書き換えが頻繁なアプリでは,そのたびに走りなおすので負荷が大きすぎる。
    • イベントをまとめて捕まえて,イベント元を見て対応する処理を行うようにしている
    • でもそうするとhtmlの書き方に制限が出る
    • onMouseClick= 直書きなどで対応。
  • イベントを割り当てる関数では,戻り値にイベントを削除するクロージャをセットするようにしている。
  • 例外を無視して実行する関数 _try
  • 不特定引数をとれる関数
    • 1つでも複数でも配列でも配列の配列でもOK
    • rubyみたいにflattenして処理する
  • LDRのソースコードは別に隠していないので読んで。
  • Q&A