• #design-principles
  • #quality-assurance
  • #recursive-review
  • #vue
開発

デザイン原則の再帰的レビュー:49原則・294項目の品質検証

UIデザイン原則のデータ品質を検証するため、原則自身を評価基準として再帰的にレビューを実施した。8カテゴリ・49原則・294項目すべてを精査し、一貫性の問題と改善点を特定した。

レビュー方法

再帰的レビューとは

デザイン原則のデータを、そのデザイン原則自身を基準として評価する手法。例えば「一貫性の原則」に従い、データ形式の一貫性を検証する。

評価基準

  1. タイトル形式の一貫性: titleフィールドに不要なプレフィックス("Bad: "/"Good: ")がないか
  2. 事例の適切性: Good/Bad事例が原則の意図を正しく表現しているか
  3. 原則間の矛盾: 異なる原則間で矛盾する指針がないか

対象データ

カテゴリ原則数項目数
A. 明確なフィードバック530
B. 操作の効率化742
C. エラー防止742
D. 視覚的明確さ742
E. 認知負荷軽減636
F. 感情配慮636
G. アクセシビリティ530
H. 信頼構築636
合計49294

レビュー結果

カテゴリ別サマリー

カテゴリ問題数内容
A30全項目にプレフィックスあり
B0問題なし
C0問題なし
D0問題なし
E0問題なし
F24bad2/good2/bad3/good3にプレフィックスあり
G20bad2/good2/bad3/good3にプレフィックスあり
H24bad2/good2/bad3/good3にプレフィックスあり

詳細結果

カテゴリA: 明確なフィードバック(原則1-5)

問題: 全30項目のtitleフィールドに「Bad: 」「Good: 」プレフィックスが付いている。

// 現状(問題あり)
bad: { title: 'Bad: 何も起きない送信ボタン', description: '...' }
good: { title: 'Good: 明確な送信完了表示', description: '...' }

// あるべき姿
bad: { title: '何も起きない送信ボタン', description: '...' }
good: { title: '明確な送信完了表示', description: '...' }

該当原則:

  • No.1 操作結果の即座表示
  • No.2 処理状態の可視化
  • No.3 成功・失敗の明示
  • No.4 変更内容の確認表示
  • No.5 システム状態の常時表示

カテゴリB: 操作の効率化(原則6-12)

問題なし: 全42項目が正しい形式。

カテゴリC: エラー防止(原則13-19)

問題なし: 全42項目が正しい形式。

カテゴリD: 視覚的明確さ(原則20-26)

問題なし: 全42項目が正しい形式。

カテゴリE: 認知負荷軽減(原則27-32)

問題なし: 全36項目が正しい形式。

カテゴリF: 感情配慮(原則33-38)

問題: bad/goodは正しいが、bad2/good2/bad3/good3の24項目にプレフィックスあり。

該当原則:

  • No.33 達成感の演出
  • No.34 ポジティブな表現
  • No.35 待ち時間の心理対策
  • No.36 安心感の提供
  • No.37 パーソナライズ
  • No.38 楽しさの演出

カテゴリG: アクセシビリティ(原則39-43)

問題: bad/goodは正しいが、bad2/good2/bad3/good3の20項目にプレフィックスあり。

該当原則:

  • No.39 データ整合性の自動確保
  • No.40 キーボード操作対応
  • No.41 スクリーンリーダー対応
  • No.42 色に依存しない情報伝達
  • No.43 フォーカス状態の明示

カテゴリH: 信頼構築(原則44-49)

問題: bad/goodは正しいが、bad2/good2/bad3/good3の24項目にプレフィックスあり。

該当原則:

  • No.44 透明性の確保
  • No.45 プライバシー配慮
  • No.46 セキュリティの可視化
  • No.47 約束の履行
  • No.48 誠実なエラー対応
  • No.49 ユーザー主権の尊重

事例の適切性

全294項目について、Good/Bad事例が原則の意図を正しく表現しているか検証した。

結果: 問題なし

すべての事例が、該当する原則を適切に表現している。例えば:

  • 原則39「データ整合性の自動確保」: 生年月日と年齢の自動計算、経費明細と合計の自動計算、開始日・終了日と期間の自動計算の事例が適切に設計されている

原則間の矛盾

49の原則間で矛盾する指針がないか検証した。

結果: 矛盾なし

各原則は異なる観点(フィードバック、効率、エラー防止など)からUIを評価しており、相互に補完的な関係にある。

問題の根本原因

なぜプレフィックス問題が発生したか

  1. 初期実装時の方針不統一: カテゴリAの実装時に「Bad: 」「Good: 」プレフィックスを付ける方針だった
  2. 途中で方針変更: カテゴリB以降でプレフィックスなしに変更
  3. 追加事例の実装時: bad2/good2/bad3/good3を追加する際に、再び古い方針でプレフィックスを付けてしまった

原則3「一貫性の維持」違反

この問題は、まさにデザイン原則No.21「一貫性のあるデザイン」に違反している。データ構造の一貫性が保たれていない。

改善提案

即時対応:プレフィックス削除

principles.tsの以下の項目から「Bad: 」「Good: 」プレフィックスを削除する:

  1. カテゴリA: bad/good/bad2/good2/bad3/good3の全30項目
  2. カテゴリF: bad2/good2/bad3/good3の24項目
  3. カテゴリG: bad2/good2/bad3/good3の20項目
  4. カテゴリH: bad2/good2/bad3/good3の24項目

合計: 98項目の修正が必要

長期対応:バリデーション追加

// content.config.ts または principles.ts に追加
function validatePrinciple(p: DesignPrinciple): void {
  const fields = ['bad', 'good', 'bad2', 'good2', 'bad3', 'good3'] as const
  for (const field of fields) {
    const example = p[field]
    if (example?.title.startsWith('Bad: ') || example?.title.startsWith('Good: ')) {
      console.warn(`Principle ${p.no}: ${field}.title has unnecessary prefix`)
    }
  }
}

まとめ

項目結果
レビュー対象49原則・294項目
形式問題98項目(プレフィックス)
内容問題0項目
原則間矛盾なし

デザイン原則のデータは内容面では高品質だが、形式面での一貫性に改善の余地がある。プレフィックス問題は、原則21「一貫性のあるデザイン」を適用してデータ自体を修正することで解決できる。