メニューがごちゃごちゃしてきたので、整理する #13
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
現在の状態(なぜOpenか)
進行中
次にすること(Next Action)
メニューやURLの仕様を固める
ブロック要因
なし
問題・背景
機能追加に伴って、共通ナビゲーションに画面をそのまま足してきたため、トップレベルのメニューが増えすぎている。
現状の問題は主に以下。
計画実績設定補助機能が同じ粒度で並んでいるこのため、トップレベルの情報設計を整理し直す必要がある。
ここまでの議論で合意した方向
1. トップレベルは 5 分類に絞る
現時点の第一候補は以下。
理由:
2. 「マスター」を独立カテゴリにする
当初は
資材・帳票という案もあったが、議論の中で以下が明確になった。圃場管理は本質的にマスターデータ管理である作物品種も本来はマスター管理に属する資材マスタ肥料マスタはすでに独立画面があるしたがって、
圃場管理作物品種資材マスタ肥料マスタをマスターとして集約する方が自然、という判断になった。3. 「帳票・連携」は補助業務の受け皿とする
在庫管理帳票出力データ取込気象メールは完全に同質ではないが、いずれも日々の主作業そのものではなく、補助・出力・連携・参照の性質が強い。そのため、トップ階層を増やしすぎないためのまとめ先として
帳票・連携を置く。補足:
データ取込は日常操作ではなく、年度切替時や初期設定時の補助導線として扱うメールは個別トップにせず、帳票・連携配下にまとめる設定は現状パスワード変更のみなので、右上ユーザー操作に残すURL とメニュー構成についての議論
議論の中で、
/fertilizerと/fertilizer/spreadingのように、URL 構造がメニュー階層と一致していないことが衝突の原因ではないか、という指摘があった。これはその通りだが、次の理由から「今回のメニュー再編で URL を全面変更する」のはスコープ外とする。
今回の基本方針
hrefベース、衝突ケースだけ例外ルールを持つ現時点で明確になっている衝突
/fertilizer= 計画 > 施肥計画/fertilizer/spreading= 実績 > 散布実績/materials= 帳票・連携 > 在庫管理/materials/masters= マスター > 資材マスタこのため、少なくとも上記のペアについては「より具体的なパスを優先する」判定が必要。
メニュー定義の持ち方についての議論
議論の結果、メニュー定義はフラットな
group管理より、階層構造で持つ方が可読性が高いという結論になった。イメージ:
ポイント:
hrefベースで扱うmatchを使うmatchは全件定義用ではなく、衝突回避用の最小限の逃げ道とするまた、Next.js App Router の Route Groups は「コード整理の手段」として有効だが、ナビ判定そのものとは分けて考える、という整理にしている。
Phase 導入で決めたこと
Phase 1
マスター配下に表示するのは圃場管理資材マスタ肥料マスタのみ作物品種はマスター体系には含めるが、独立画面がまだないため Phase 1 ではメニューに表示しないPhase 2
作物管理品種管理を独立画面として追加帳票・連携内のメールを必要に応じてサブグループ化Phase 3
検討事項
作物品種の独立画面追加時に URL をどう切るか帳票・連携が今後広くなりすぎた場合の再分割基準参考仕様書
改善案/ナビゲーション再編仕様書.mdこの Issue は「なぜこの分類にしたか」「どの論点をどう切り分けたか」を残す親議論として扱い、実装詳細は上記仕様書に集約する。
完了条件
関連
改善案/ナビゲーション再編仕様書.md