Skip to content

技術的負債の管理 ― 「今直すもの」と「許容するもの」

📖この章のキーワード
用語意味なぜ重要か
技術的負債短期判断で生まれた将来の修正コスト借金と同じ。返済計画が重要
トリアージ優先順位をつけて限られたリソースで対応する手法全部直すのではなく分類して判断
リグレッション修正により既存の正常動作が壊れること大規模修正の隠れたコスト
返済計画負債をいつ、どの順序で解消するかの計画計画なき負債が真の問題

負債は悪ではない

技術的負債は「借金」です。借金は悪ではありません。返済計画なしの借金が悪 です。

この教材で見てきた LIBOT のコードにも負債があります。

負債件数状態
DB::raw約 212 箇所段階的に移行中
v-html約 104 箇所リスク分類して対応中
署名比較の ==一部箇所hash_equals() への移行対象

「全部直す」が間違いである理由

  1. コスト: 212 箇所を直すのに数週間。その間、新機能開発は止まる
  2. リスク: 動いているコードを変えること自体がリグレッションリスク
  3. 優先度: 全てが同じ危険度ではない

正しいアプローチ: トリアージ

Step 1: 分類

優先度基準対応
P0ユーザー入力が関わるセキュリティ問題即座に修正
P1運用に影響する品質問題次スプリントで対応
P2改善すべきだが緊急ではないバックログに積む
P3ベストプラクティス違反だが影響が小さい時間があれば

Step 2: ルール化

新規コード: DB::raw 禁止。Eloquent / Query Builder 必須
既存コード: P0 から段階的に移行。触ったファイルは改善する

Step 3: 計測

指標計測方法目標
P0 件数月次スキャンゼロ
全体件数月次スキャン減少傾向
新規追加PR レビューゼロ

この教材で身につけたこと

Part 0-10 を通じて、あなたは以下の力を訓練しました。

Part
リクエストを疑うPart 1
データを守るPart 2
複雑さを管理するPart 3
非同期で障害に耐えるPart 4
イベントで疎結合にするPart 5
外部依存と付き合うPart 6
キャッシュで速くするPart 7
セキュリティを判断するPart 8
壊れる前提で設計するPart 9
AI コードをレビューするPart 10

AI が 30 秒でコードを生成する時代に、あなたは「これを本番に入れるか?」に自信を持って答える力を手に入れました。

それがサンドイッチ・ワークフローの「下のパン」― 判断する力です。