音浴博物館/プログラミング/20081103

status

  • 今まさに作業中
  • 眠くなったので中断 ← 今ここ

作業内容

やること/やってることメモ

  • 検索(新案)
    • UIの設計(叩き台)
    • 各検索の際にやり取りされるデータ構造の設計 ← 今このへん?
    • Javascript、或いはPHPを使ってUIの作成
    • 検索部の設計
    • PHPによる検索部の作成
    • CVSかSubversionにぶち込む
  • 検索(廃棄案)
    • フォームの設計
    • フォームの作成
    • 検索部の作成
    • 表示部の作成
      • ディスク名で検索された場合、条件に合致するディスク名を列挙し、ディスク名のリンクから各ディスクの詳細ページを呼び出せるように
      • アーティスト名で検索された場合、条件に合致するアーティスト名を列挙し、更に追加の検索条件を指定して/しないで、ディスク名を列挙し、ディスク名のリンクから各ディスクの詳細ページを呼び出せるように
    • ext2.0を利用した表示
    • CVSかSubversionにぶち込む
  • 思い出ノート
  • 写真ギャラリー
  • ttp://npucc.com/~onyoku/igarashi/ で作業する/してる
    • 頭にh補完してね

フォーム(検索部へのいんたーふぇいーす)

概要

  • POSTで検索条件の各項目を与え,search.phpを呼び出す
  • まだ決定版の仕様じゃないデス、今あるものの説明、みたいな

入力項目(WIP)

typenamevalue
input/textname
input/radiotypealbum/artist/music
select/optionmatchingcomplete/prefix/partial/suffix

UIどう作るべー

状態をリストしてみる

  • 初期状態(検索画面トップ)
  • 絞り込み検索時
    • アーティスト列挙
    • ディスク列挙
    • 曲列挙
  • 最終結果表示(目当てのディスクの情報)
  • 該当データなし
  • エラー

検索に使える条件をリストしてみる(L1)

  • アーティスト名
    • artist/nameとartist/kana
  • ディスク名
    • disc/titleとdisc/subtitle
  • 曲名
    • music/title

状態遷移的なやつ

  • 何件まで絞り込めてるとか、どんなのが引っ掛かってるとか、経過を表示しながらの検索
  • ディスク列挙/曲列挙から最終結果表示をすることはあっても、アーティスト列挙から最終結果表示に至ることはない
    • アーティスト列挙の段階ではディスク名が得られないから
  • 初期状態からはアーティスト列挙/ディスク列挙/曲列挙のどれかの状態へ
  • アーティスト列挙からはアーティスト列挙/ディスク列挙/曲列挙のどれかの状態へ
  • ディスク列挙からはディスク列挙/最終結果のどちらかへ
  • 曲列挙からは曲列挙/最終結果のどちらかへ
    • 曲列挙→ディスク列挙が必要ないのは、曲列挙の際に同名曲を区別するためディスク名もかならず添えるから
    • 当然、同名曲の重複を省いて曲列挙するなら、曲列挙→ディスク列挙が必要になる
  • 絞り込みの途中で勝手に曲列挙がディスク列挙になったり、ディスク列挙が曲列挙になったりするのは混乱を招くのでやらない
  • 遷移図
    • 検索遷移.png

初期状態からの検索

  • 初期状態からアーティスト名とディスク名を両方一度に入力する場合を考える必要はない、そんな使い方する奴滅多にいないだろたぶん
    • L1項目複数を同時に使って検索する奴はいないと思っておこう→ラジオボックスのようなもので選択
  • 初期状態ではL1項目のどれかを選択してテキストでその名前入力して絞り込み検索へ
  • アーティスト名で検索かけた場合は条件に一致するアーティスト名を列挙
  • ディスク名で検索かけた場合は条件に一致するディスク名(+アーティスト名)を列挙
  • 曲名で検索かけた場合は条件に一致する曲名(+ディスク名+アーティスト名)を列挙

絞り込み検索

  • AND/ORを使って複数条件での絞り込み検索
  • アーティスト列挙
    • アーティストが確定するまでアーティスト列挙を繰り返す
    • アーティストを確定した場合、曲列挙かディスク列挙へ遷移(任意)
    • 各行の表示項目
      • アーティスト名
  • 曲列挙
    • 曲名もしくはアーティスト名もしくはディスク名が検索条件へ追加された場合、結果を絞り込んで曲列挙へ遷移
    • 曲を確定した場合、最終結果へ遷移
    • 各行の表示項目
      • 曲名
      • 収録ディスク名
      • アーティスト名
  • ディスク列挙
    • ディスク名もしくはアーティスト名もしくは曲名が検索条件へ追加された場合、結果を絞り込んでディスク列挙へ遷移
    • ディスクを確定した場合、最終結果へ遷移
    • 各行の表示項目
      • ディスク名
      • アーティスト名

最終結果表示

  • ディスク情報の表示項目
    • タイトル(+サブタイトル)
    • レーベル
    • メモ(disc/description)
    • 収録曲のリスト(年くらい添えるか)
  • 収録曲詳細の表示項目
    • 曲名
    • 発表年
    • ディスク名+収録サイド+トラック
    • アーティスト名+参加区分
    • メモ(discography/description)

めもめも

  • L2項目
    • 年代やレーベルなどのより詳細な条件(L2項目とでも呼んでみよう)での検索はまだ考えちう
    • L2項目のリスト(ToDoリストとかnot yetリストともいう?)
      • アーティストの参加区分(アーティスト名が指定された上での曲列挙/ディスク列挙)
      • 製品番号(ディスク列挙)
      • 発表年(曲列挙/ディスク列挙)
      • ディスクタイプ(曲列挙/ディスク列挙)
      • レーベル(曲列挙/ディスク列挙)
      • キーワード(ディスク列挙)
    • 参加区分については、アーティスト列挙から求めるアーティスト名を確定させた後、曲列挙もしくはディスク列挙へ遷移する際に追加入力可能なようにするとかかねえ
    • 発表年/ディスクタイプ/レーベルについては、入力フォーム設けて任意で絞り込みに使えるようにする感じか
    • キーワードは楽曲毎ではなくディスク毎設定されるので、ディスク列挙の際の絞り込みに使う
      • そういえばなんで楽曲毎でなくディスク毎なの?

データ構造についての殴り書き

・データ構造
	・絞り込み検索
		・アーティスト列挙
			・リスト(アーティスト名、アーティストID)
		・曲列挙
			・リスト(ディスク名、アーティスト名、ディスコグラフィーID)
		・ディスク列挙
			・リスト(アーティスト名、ディスク名、ディスクID)
	・最終結果表示
		・ディスク詳細
			・(タイトル、レーベル、メモ、収録曲リスト(曲名、収録サイド、トラック、ディスコグラフィーID))
		・収録曲詳細
			・(曲名、発表年、ディスク名、収録サイド、トラック、メモ、リスト(アーティスト名、参加区分))

懸案事項

  • SQLインジェクションへの注意/適切な入力のエスケープ,validationを行うこと

To DB班

  • 基本的に音浴博物館/データベース構築をドキュメントとして参照しながらDBへのアクセスを書くので、情報は最新にしといてね!
  • ディスクのレーベルごとの製品番号入れるとこはないの?keywordへ入れる?
    • あー、自己解決。disc/descriptionに入れるのか。
      • と思ったらそうでもないらしい!フィールド足りてないのかもしれず。
  • ディスクの発売年入れるとこもない気がする
  • ところでkeywordってなんでディスク毎なの?楽曲毎ではだめなのか、っていうか楽曲毎のは作らないのかな?
  • 同姓同名のアーティストってどういう扱いになるんだろ。ポールヤングみたいな。(Mike + the Mechanicsなんて誰も知らないとか言うなよ!)

Sandbox

  • 検索は対話的な行動
    • よってプログラムも対話的なものが必要
    • 入力 → 検索 → 表示 → 入力……と、欲しい結果が得られるまで続く
  • UIと内部制御の分離を考えると、PHPコードは検索の単純な作業のみを行い、JSON/XML等でデータ構造を吐き結果を返すものとし、UIはJavascript(ext2.0)で書くのが望ましい
    • ではUIをJavascriptで書くことはデザイン班の仕事なのか、プログラミング班の仕事なのか?
      • 結論から言って、コーディングはあまりデザイン的な作業ではないため、プログラミング班が担当することになる。デザイン班が指示してプログラミング班がコードをパンチという体制にするとしても、最初の叩き台はプログラミング班が出す。現時点では両班どちらも道具(Javascript/ext2.0)に関する知識が不足しており、道具についてより早く理解できるのはプログラミング班の方

このページ書いてる人(作業者)

編集した人いたら随時追加していってね↓

  • いがらし
    • 検索どんな感じでやるかなーって考え中
      • 目標:今の元気を使い尽すまでにアーティスト名からディスクの情報引っ張り出すとこまで作る
      • ってことは、ディスク情報まで最低1件は入ってるDBが必要だなーほしいなー
      • NHK取材時にLet It BEの情報入力したしー。あのへんのデータはきっと一旦お掃除するんだろうしー。俺が今DBの内容にちょっと手付けちゃっても誰も文句いわないよねー。きっとそうだよねー。
      • ゼロから進めていくには、ちょっと目標が遠すぎたかな!とか思いはじめた!
      • あるぇー、思ってたよりUIの基礎設計がまともに出来上がってきてしまった。これパンチするだけならJavascript/ext2.0で頑張らなくてもいいような気もしてくるな。
      • 携帯とかテキストブラウザからのアクセスまで考えると、検索部が吐いたデータ構造を食うPHPのドライバがあってもいいかもなあ。
      • PHPとJavascript両方使う(覚える)なんてめんどくさいから!とりあえずPHPだけでUIも内部制御も書くって手もあるよね! ← これが「より早く理解できるのはプログラミング班の方」とか大見栄切った野郎の言うことだろうか
      • とにかく先にデータ構造の設計確定させて、PHPドライバでもJavascriptドライバでも好きなやつを気分で進められるようにしよう
    • ねもくなったのでこのへんで一旦寝るにょ
    • 検索UIの設計についてはこの日の作業で割と固まったので、後で別ページに分離するにょ

こめ欄



添付ファイル: file検索遷移.png 316件 [詳細] file検索遷移.bmp 271件 [詳細]

トップ   編集 凍結 ページの変更点 バックアップ 添付 複製 名前変更 リロード   新規 ページ一覧 単語検索 最近更新されたページ   ヘルプ   最終更新のRSS
Last-modified: 2008-11-04 (火) 09:15:13 (3641d)