Appearance
技術的負債の優先順位 ― 全部今すぐ直すべきか?
この章のキーワード
| 用語 | 意味 | なぜ重要か |
|---|---|---|
| 技術的負債 | 短期的な判断で生まれた、将来の修正コスト | 借金と同じ。返済計画が重要 |
| トリアージ | 優先順位をつけて対応する手法 | 全部直すのではなく危険度で分類 |
| 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に聞く前に、自分の頭で考えてみましょう。
テキストを入力すると有効になります