はじめに(設計書を読む順番と全体の 1 周)¶
扱うこと: 設計書を読む順番、インデックスを作って検索するまでの 1 周の流れ。扱わないこと: 各処理の仕様の詳細(各区分のページで扱う)。先に読むページ: 設計の概要。
初めて設計書を読む開発者が、どこから読めばよいかと、インデックス作成から検索までの流れを 1 度でつかめるようにする。
読む順番¶
flowchart TB
idx["design/index.md<br>目的・方式(用語)・全体構成"]
onb["start/onboarding.md<br>(このページ)"]
st["structure/<br>全体の構成"]
ix["indexing/<br>インデックス作成"]
dt["index-data/<br>インデックスのデータ"]
se["search/<br>検索"]
gu["gui/<br>画面"]
te["testing/<br>テストと CI"]
rf["reference/<br>関数一覧"]
idx --> onb --> st --> ix --> dt --> se --> gu --> te
te -. 必要なとき .-> rf
- 変えたいファイルが決まっているときは、変更の種類から見る設計書を引く を使うと、この順番どおりに読まなくてよい。
- 用語(インデックス作成・インデクサ・取り込み・抽出 など)は 設計の概要「方式」 にそろえてあるので、先に一読する。
インデックスを作って検索するまでの 1 周¶
利用者が画面を開いてから、インデックスを作り、検索して元のファイルにたどり着くまでの一連の流れ。各矢印の詳しい中身(取り込みの並列化・本文インデックスへの書き出し・検索の絞り込みなど)は、対応する区分のページで扱う。
sequenceDiagram
actor U as 利用者
participant G as 画面(tebunko.bat)
participant CV as インデクサ(tebunko/indexer.ps1)
participant W as work/store/content/
U->>G: [インデックス管理]の[+ フォルダを追加]でインデックスを追加
U->>G: [すべて更新]
G->>CV: 画面のプロセスのスレッドで実行(受け渡しの口 -Channel)
CV->>CV: 取り込み対象を数える(更新日時・サイズを前回と比べる)
G->>U: インデックスごとの取り込み対象の件数を確認(更新が無ければ「更新不要」)
U->>G: [更新を開始](前回失敗分も再取り込みするかを選べる)/[キャンセル]
CV->>W: シート・ページ・スライドごとの TSV を作成し、フォルダごとの本文インデックスに入れる(取り込み済み・更新なしはスキップ)
G->>U: 進み具合・失敗したファイルを表示([中止]で止められる)
U->>G: [検索]でワードを入力
G->>W: 本文インデックスを検索
G->>U: 結果をファイルごとの見出しにまとめて表示(見出しを開くと該当行。行のダブルクリックで元のファイルを開く)