あるプロジェクトは静かに負債を蓄積する。Leverage OJはそうではなかった——コンテスト中に凍結するランキングシステム、PM2クラスタリング下で壊れる認証システム、リクエストごとに提出テーブル全体をスキャンするリーダーボード、そして設定が1つ漏洩すれば完全な認証情報ダンプになるパスワードハッシュスキームという形で、大声で蓄積していた。
これは完全な書き換えの物語だ:何を置き換えたか、なぜ、そしてその過程で何を学んだか。
1. リファクタリングではなく書き換えを選んだ理由
技術的負債の棚卸し
オリジナルのLeverage OJは、実際の制約の下で高速に進むプロジェクトだった。開発者たちは思慮深かった——アーキテクチャの決定からそれがわかる。しかし6年間の機能追加、深夜の修正、「私のマシンでは動く」パッチが不安定な塔として積み重なっていた。
約5分
