ここに書くのは何?
- 考えるとき、議論するとき、ドキュメンテーションする時、によく使うデータ構造をまとめます。
- エンジニア視点でまとめましたが、大抵の人も同じように考えていると思います。
データ構造一覧
箇条書きする
順序つきリスト
- 同じ粒度のものを順序つきで並べる
- 利用例: ランキング、工程表
順序なしリスト
- 同じ粒度のものを順序なしで並べる
- 重複しないものを扱うことが多い
- 利用例: チェックリスト、アイデア
一覧データをつくる
テーブル(マップ)
- データの一覧
- 列とカラムに対してデータがある
- キーを適切に設計すると検索が O(1)
- 利用例: 家計簿、名簿
マトリクス
- ”で、どうなる?"の一覧
- ロジックの平面化
- テーブルはあくまでデータの一覧で判断を含まない
- マトリクスはロジックに基づいた判断の一覧
- 利用例: 携帯電話の料金プラン
関係性を表す
ツリー
- 事象を構成する要素を分解してぶら下げていく
- 利用例: ロジックツリー
ベン図
- 包含関係を整理する
ピラミッド
- ベース〜アプリの関係を表現する
- テストピラミッド
リンク
- つながりを表す
- 「どういうつながりか」は含意しない
- 例えば、ツリーなら「大項目 - 小項目」「事象 - 因子」のような関係性を含意する
- 分類が難しい「つながり」も多いので、「つながっている」ことだけわかりたい
- 「どういうつながりか」は含意しない
- 利用例: マインドマップ、Scrapbox
- 最近 Scrapbox はじめました。Scrapbox に書き散らして、ブログは清書です。 scrapbox.io
データのまとまり
グラフ
グリッド
- 横方向と縦方向の2軸をそれぞれ垂直に区切ってデータを分類する
- 境界を超えると性質が変わるように境界をつくる
- いわゆる XY 平面はそれぞれを 0 で区切った 2 * 2 のグリッド
- 座標を分類する
- カンバンは 1 * N のグリッド
- タスクの状態を分類している
伝えたかったことはなにか
「ちゃんと目的に応じて使い分けてますか?」ということです。
- アイデア出しには、ツリーよりも順序なしリストの方が良くないですか?
- テーブルと睨めっこするより、傾向を見たいならグラフにしたらどうでしょう?
- タスク管理はテーブル(Excel)よりもグリッドの方がステータスが分かりやすくないですか?
「やりたいこと」に対して、使うべき「データ構造」は何が最適なのか?を考えると、実りのあるインプット/アウトプットが出来ると思います。