ここでは
このページでは「はてなブックマーク人気エントリ収集プログラム」における、要件開発プロセスで生まれる情報を記していきます。
各イテレーションでまとめます。
1. ライフサイクル1回目
1.1. そもそも得られたデータで何をしたいか
このプログラムを使って得られたデータで、何をしたいかを書いてください。
kato:
- 有益なページを見つけたい
- 過去に注目されたが隠れてしまったエントリを探したい
ichi:
- 情報収集を手軽に行いたい
- とくに技術系のエントリをトラックしたい
1.2. 取得可能な情報
人気エントリのリポジトリから取得できる情報の種類を以下に書きます。
No. | 項目 | 多重度((1はページ内で1個。nはエントリー数と同じ数。mはエントリー内に複数個。)) | 説明 |
1 | 日付 | 1 | ページ内のエントリが作成された日付 |
2 | タイトル | n | 人気エントリのタイトル。リンク先の題名と同じ |
3 | URL | n | 人気エントリのリンク先URL |
4 | カテゴリ名 | n | エントリーが属するカテゴリ |
5 | カテゴリURL | n | エントリーが属するカテゴリ一覧へのリンク |
6 | キーワード名 | m | エントリーに関連するキーワード。各エントリーに複数存在する |
7 | キーワードURL | m | キーワードへのリンク。各エントリーに複数存在する |
8 | 詳細へのリンクURL | n | 詳細情報へのリンク |
9 | ブックマーク数(当日分) | n | その日にブックマークされた数。最新(=今日)のページには存在しない項目 |
10 | ブックマーク数(現在) | n | 現在ブックマークされている数 |
11 | ブックマーク追加 | n | エントリーを自分のブックマークに追加するリンク |
12 | タグ | m | エントリーに付けられたタグ。各エントリーに複数存在する |
13 | タグURL | m | タグへのリンク。各エントリーに複数存在する |
14 | 概要 | n | エントリーの概要。RSSフィードから取得もしくはリンク先から序文を取得して概要とする。RSSフィードの場合は過去エントリの概要を取得できない。 |
※最近はYouTubeの画像もエントリーに含まれるようになっているので、判断できるようにしておかなければならない。
他にもあれば追加してください。
1.3. 取得する情報
1.2の情報のうち、本プログラムで収集する情報(案)を以下に書きます。
No.((1.2の表内No.と合わせる)) | 項目 | 多重度 |
1 | 日付 | 1 |
2 | タイトル | n |
3 | URL | n |
14 | 概要 | n |
8 | ブックマーク数(現在) | n |
1.4. 外部インタフェース
とりあえずはコマンドラインからオプションを指定するとして、何が指定できると幸せかを書きます。次のイテレーションで全部のせる必要は無いので(機能過多は避けたいし)、現時点での希望を書いてください。
オプション | 機能 |
-d | 「-d 20061224」というように取得する日付を指定できる。「-d 20061028-20061104」というように、ハイフンで範囲を指定できたら幸せ |
-v | バージョンを表示して終わり |
-h | ヘルプ。コマンド構成と、オプションの一覧を表示して終わり |
-o | 「-o 出力ファイル名」というように、出力先のファイルを指定する。このオプションが無い場合は標準出力に結果を出力。出力ファイル名の拡張子でCSV,HTMLなどの形式を分けるとスマート?(出力先の指定方法は議論が必要) |
-t | 人気エントリのタイトル一覧を出力。想定される使い方として、まずはタイトル一覧を出力して確認し、その後指定したタイトル(もしくは項番)の本文を出力できれば便利!? |
-f | 情報のフィルタリング。たとえばRubyとPerlに関する情報を収集したければ「-f Ruby Perl」というような感じでできれば幸せ。 |
1.5. 方針(今あるプログラムから何をするべきか)
HatenaBookmarkReader.rbから、今回変更する内容は以下のとおり。
- (例)1.3.で決めた取得項目も得られるようにする
- <ここは皆で決めましょう。上もあくまで例です>