野望

書いておく

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
目標

  • 情報の同期エディタ
    • そのページを開いて文字入力ができる。
      • できればWebページとしてではなく、エディタとして活用出きること。
      • それってポメラ
    • -
    • サイズは可変
      • 各種表示オプションを変えることがjsによって可能。
    • ストレージモデル
      • 原則、HTML5なブラウザが作動することが前提。
      • なので、ケータイやらiphoneなんかは対象外。
      • 最低でもAndoroidでなくてはいけない。
      • iphoneは別途考える。ただし優先度は低くてOK。
      • HTML5で構築を行うので、それに対応するクライアントに絞る。
    • ショートカットをサポート
      • nanoをベースとする。
    • オフラインでも作動。
    • UIはポメラを参考にする。
      • メニュー構成など。
    • 以上はシステム上変更可能とする
    • バージョン管理機能をsvnと連携し搭載する
    • 高速J化のためなら何でもする
      • jspを一つにする?
      • ローディングを表示するということですね。
      • 必要なjsや画像は一つにする。
      • 二ファイルに収める。
      • 遅延読み込みを積極的に使用する。
    • エフェクトのレベルは設定できるようにしておく。
      • 内容はすべてCookieに保管しておく?4KBしかないよ?
    • バージョンアップは手動で。
  • ポリシー
    • そもそも、実現しなければ元の木阿弥
    • 粗が出るまで基本性善説で構築を行う。
  • 越えなければいけない壁
    • ネット接続と切断のイベント処理はどうなっているのか。
      • これは実際にHTML5APIに存在する。問題はFirefoxで実際に使えるのかと言う点。
    • diffの取り方は?
      • jsで処理を行うべきだとはおもうが、そのようなモジュールが適当に手に入るかは微妙。
      • あと、バージョン管理はOFFライン時とのマージはどうするのか。
    • オフラインの挙動
      • 前提としてHTML5で書いたものを基準にする。
      • オフラインから処理をスタートさせることは可能か。
      • この場合、一度サイトに来てJSファイルを取り込んでいるというのが前提条件ではある。
      • なので、積極的にキャッシュを利用せよという指令は出せるのか?→マニュフェストファイルで指定が可能
      • バージョンアップを行った場合の安全なバージョンアップ方法:やっぱりファイルを一つにするしかない?

これを考えたが、必要な何かがあるはず。
同じURIに置いたファイルは同じものとして認識される。
では、同じURIでなければいいのか?サーバ側でコピーしてURIを買えておく?ある意味正攻法で正しい。
ただ、GAEでローカルファイルのコピーは可能なのか?

    • ショートカットトラップ
      • 現実的な速度でできるのか。
      • 基本、エディットエリアにフォーカスがあれば対象とする?ブラウザとかぶった場合はどっちが優先される?
      • 例えばコピペで結局かぶってる訳だけど、これってキャンセル効くの?
  • オフライン時の挙動
    • オンライン→オフライン
      • オンラインリソースにアクセスを試みるとメッセージを出す?
    • オフライン状態への準備
      • 定期的にオンラインと同期すると。
      • ついでにセッションキーの交換も行うと。
      • 二個持たせるしかないか。二回まではOKと。
    • オンラインに移行したら
      • 定時同期を用いて向うに同期を行うのか。これはプロパティで毎度確認するしかない。ということは定時アクセスが必須。
      • その際、鯖側の情報が別端末に書きかえられている場合は?上書き?Diffとって?
      • 現実にはDiff込みでオートマージか。
      • もちろんバージョン管理でバージョンは進めておく。
      • 最終的に設定できればよい。

基本的な処理の流れ

  • ログイン判定。
    • ログインしていなければログイン画面にリダイレクト。
    • ログインしていれば次へ。
    • パスワードの再発行ロジックも用意する。
  • 本画面
    • ここはファイラーである。
      • ファイラーはPixiv程度?
      • ファイルはタイトルと設定がある。
      • フォルダにはファイラーとマガジンがある。マガジンにはマガジン設定ファイルがある。
      • バージョン履歴
      • 作業記録
      • カレンダー


とりあえず、火急のお話としては、統合プレゼンテーションツールを作成する。
この際、うぃき記法を変換してストックしていく。

  • 分類ができる他は同じ。
  • プレゼンテーション層はあの人のプラットホームを活用。
  • オフライン編集機能も、シンタックスハイライトもとりいれる。

レストフルなDBの利用を考える。KVSですね。まあローカルも考えるが原則GAEで。
TOMCAT互換?
MySQL互換を考えておく。
規模は全体で容量が1GB程度。
まあ、画像の取り込みはどうしようか。

まず、掲示板を作る。

  • ユーザ独立マルチスレッド掲示板。
      • ページ単位でエントリーを持つ。

 ・エントリーID
 ・オウナーID
 ・親エントリー
 ・作成日時
 ・更新日時
 ・更新者
 ・内容
 ・閲覧条件
 ・公開開始
 ・公開終了

  • それに対するタグ

 ・タグ内容
 ・対象エントリID
 ・作者
 ・ロックフラグ
 ・閲覧制限
 ・タグ表記

    • 閲覧カウンター

 ・対象エントリID
 ・カウント数

    • アクセスカウンター

 ・リファラ
 ・アクセスアドレス
 ・アクセス日時
 ・UA

      • つけているエントリー
    • コメント

 ・コメントID
 ・対象エントリID
 ・コメント投稿者
 ・コメント内容
 ・コメントシーケンス
 ・親コメント
 ・有効無効
 ・承認

      • つけてるエントリー
    • バグとらっく?承認フローが必要なのでは。
    • -

 ・エントリーID、タイトルID
 ・承認者
 ・先行承認者
 ・承認タイプ
 ・フローID

    • じゃあ承認判定も必要だよね。

 ・対象承認フローID
 ・ジャッジ
 ・コメント
 ・修正日
 ・修正者

    • 公開範囲指定。公開制御。

 ・公開ルールID
 ・対象タイトル
 ・公開範囲
 ・公開タイプ
 ・公開開始
 ・公開終了
 ・作成者

    • 公開ルール設定

 ・

    • ユーザ認証。
      • ユーザテーブル

 ・権限:
 ・名前:
 ・ID:
 ・有効無効フラグ:
 ・パスワード:
 ・連続失敗回数:

    • ユーザ設定

 ・対象ユーザID
 ・デフォルト閲覧状態
 
 

  • 自力でしなくてはいけないこと。
    • db操作。
    • MYSQLでのMYSAMを作成すべき。でもトランザクションはどうする?どっかかける必要はある?
      • 問題にぶつかってからでもいいかも。
    • 情報をどうするか。本当にラッピングは可能なのか。
    • -