MAGTRACE
気になる言葉を題名に含む雑誌記事を、国立国会図書館サーチの雑誌記事索引から30年分集計し、年別推移・転機・原典リンクを表示します。最近調べた言葉は端末内だけに保存します。
制作メモ
- AIに任せた
- NDLサーチAPIの実測と方式決定。ブラウザから直接呼べない(CORS無し)のでPages Functionで中継。SRUのdcndlスキーマだけに発行年が入ること、SRUでは期間の絞り込みとmaximumRecords=0が使えないこと、0件がdiagnosticsで返ることを確かめ、500件以下はSRU 1本で全件取得・500件超はOpenSearchで年別件数30本(同時5本)に分けた/実装前にユーザーストーリー5本とUX5階層を書き、そこから11件の実装を決めた(発見の一文を最上部に/転機は機械的な規則で決めて断定しない/代表記事は3年×3件で選定基準を明記/記事タイトル一致に限定/検索語を持たない人向けの入口/0件と障害を同じ型で/?q=のURL共有/表表示/今年は集計途中扱い/24時間キャッシュ/Webフォント不使用)/実装はCodex(3周目はクレジット切れでOpusに切替)、UI採点は別セッションのOpus(スクショのみ・コードは見せない)。1周目10/20(390px幅のグラフ文字と見出しの折返しが0点)→2周目11/20→3周目15/20(0点なし。合格ライン16に1点届かず、上限3周で本人判断へ)/転機の規則を本物のデータで検証して直したこと。「前年比の倍率が最大の年」は小さい数字の揺れを拾い(サウナ: 2003年 1→6件を転機と判定。実際は2022年 9→36件)、「前年からの増加数が最大の年」に変えた/ユニット32件(XML解析・年別集計・分析文・クエリ正規化・グラフ座標と注記の位置・履歴)とE2E 16件(読込・0件・障害・保存済みの4状態、?q=のURL、履歴、表表示、3幅で横はみ出し無し、シェア)
- 自分でやった
- 題材の選定(設計済みのMAGTRACEをDay 23にすると決めた)/「実装はしていい、まだGitには出さない」の判断/実機での確認とX投稿、データ提供元への継続利用の連絡
- 失敗と修正
- 転機の判定を「前年比の倍率が最大の年」にしたら、サウナで2003年(1件→6件)を転機にした。件数が小さい年ほど倍率が跳ねる → 「前年からの増加数が最大の年」に変え、倍率が1.5倍未満のときは見出しを「前年からいちばん増えた(○件→○件)」にした。推し活は2024年(18→45件)、サウナは2022年(9→36件)になった
グラフのSVGを固定サイズ(760×330)で描いてCSSで縮めていたため、390px幅では軸の文字が実寸4pxで読めなかった(採点で0点) → コンテナの幅を測って1単位=1CSSピクセルで描き直し、幅が変わったら再描画する。狭い幅ではX軸のラベルを4本に間引いた
E2Eで意図的に502を返すテストが、ブラウザの「Failed to load resource」のコンソールエラーで「エラー0件」の検査に引っかかった → そのテストだけ、意図した502のログを除外した
採点者が「読込中の表示が無い」「結果表示後にヘッダーが画面外へ飛ぶ」「390pxでグラフの線がピークまで届かない」と指摘した(3件とも0点や減点の根拠になった) → コードと実機で裏を取ると、NDL側のキャッシュで応答が0.6秒になり撮影時に結果が出ていたこと、撮影スクリプトがスムーズスクロールの途中で撮っていたこと、折れ線の描画アニメーション(0.9秒)の途中で撮っていたことが原因だった。アプリは直さず、撮影スクリプトを「結果が出て2秒待つ」「即時スクロール」に直した





















