Skip to content

技術的負債の優先順位 ― 全部今すぐ直すべきか?

📖この章のキーワード
用語意味なぜ重要か
技術的負債短期的な判断で生まれた、将来の修正コスト借金と同じ。返済計画が重要
トリアージ優先順位をつけて対応する手法全部直すのではなく危険度で分類
P0 / P1 / P2優先度の分類(P0 が最優先)ユーザー入力関連 → 管理者入力 → 固定値
リグレッション修正により既存の動作が壊れること大規模修正のリスク

Phase 1: 観察

LIBOT のコードベースには DB::raw約 212 箇所 あります。

Chapter 2.4 で学んだように、DB::raw は SQL インジェクションのリスクがあります。 では、212 箇所全てが危険なのでしょうか?

典型的なパターン:

php
// パターン A: 固定 SQL 関数(低リスク)
->selectRaw('DATE(created_at) as date, COUNT(*) as count')
->groupBy(DB::raw('DATE(created_at)'))

// パターン B: バインディング付き(安全)
->whereRaw('JSON_EXTRACT(config, ?) = ?', ['$.type', $type])

// パターン C: 変数埋め込み(高リスク)
->whereRaw("status = '{$userInput}'")

Phase 2: 判断

AI禁止ゾーン

あなたはこのプロダクトの開発チームに入りました。 212 箇所の DB::raw を見て、上司に「どう対処すべきか」を提案してください。

  • 全部今すぐ直す べきですか?
  • 優先順位 をつけるとしたら、どうつけますか?
  • 直さない という判断はありえますか?

AIに聞く前に、自分の頭で考えてみましょう。

テキストを入力すると有効になります