「動いているコードは触るな」という文化があるチームもあると思います。でも、大規模な移行作業の前にはデッドコードの削除が必須です。
この記事では、Amplify Gen1からGen2への移行前にデッドコードを削除したPR(KYO-564)のレビュー経験をもとに、「安全なコード削除PRのレビュー方法」を書きます。
対象読者デッドコード削除PRをレビューする立場のエンジニア、または「コードを消していいか怖い」と感じている人に向けて書きます。
- なぜデッドコードを削除するのか
- 削除PRのレビューで確認すべきこと
- 「絶対に触ってはいけない」ファイルを先に特定する
- CIを使って安全を確認する
- まとめ:コード削除は「勇気」ではなく「確認」
なぜデッドコードを削除するのか
デッドコード(使われていないコード)を放置すると、以下の問題が起きます。
① 読む側のコストが上がる:新しいメンバーが「このコード何のために存在するの?」と混乱します。使われているコードと使われていないコードが混在していると、全体像の把握が難しくなります。
② 移行作業のスコープが広がる:Amplify Gen1からGen2への移行のような大きな作業では、デッドコードまで移行対象に含めてしまうと、作業量が無駄に増えます。移行前の整理は必須でした。
③ バンドルサイズが増える:使われていないパッケージやコードも含めてビルドされると、アプリのサイズが大きくなります。
削除PRのレビューで確認すべきこと
今回レビューしたPR(KYO-564)の内容は「Amplify Gen1からGen2への移行前に、使われていないWebフロントエンドのコードを削除する」というものでした。
削除PRのレビューで一番大事なのは「削除してはいけないものが消えていないか」の確認です。「何を削除したか」より「何が残っているか」を確認します。
? 削除PRレビューのチェックリスト
- CIのChecksが全部グリーンになっているか
- amplify/backend/ディレクトリが変更されていないか(インフラ設定は絶対に触らない)
- 削除されたパッケージがpackage.jsonから消えているか
- 現在使われている機能(SSO・設定画面等)が動作するか
- 削除されたコードが他のファイルからimportされていないか
? POINT
削除PRのレビューは「追加されたコードを読む」より「消えてはいけないものが残っているか確認する」という視点が重要です。GitHub の Files Changed で削除(赤)と変更(黄)を分けて確認します。「絶対に触ってはいけない」ファイルを先に特定する
レビューを始める前に、「このPRで絶対に変更されてはいけないファイル」を先にリストアップします。
# 絶対に変更されてはいけないもの(KYO-564の場合) amplify/backend/ → AWSのインフラ設定。変更されると環境が壊れる src/api/ → GraphQLのAPI層。削除すると全機能が止まる src/graphql/ → 自動生成ファイル。手動で触らない SSO関連のコード → 認証が壊れると全員ログインできなくなる /settings/** → 現在使われている設定画面
# 削除してOKなもの(KYO-564の場合) src/view/ → 使われていない古いWebの画面 src/redux/ → 使われていない古いReduxスライス cypress/ → E2Eテストのうち古いWebフロントのもの package.json の不要な依存(FullCalendarなど)
このリストを先に作ってからGitHubの Files Changed を確認すると、「触ってはいけないものが変更されていないか」を効率よくチェックできます。
CIを使って安全を確認する
削除PRで一番信頼できる確認方法はCIです。TypeScriptのコンパイルエラーやテストの失敗はCIが自動で検出してくれます。
# CIで自動確認される内容(KYO-564の場合)
npm run check → TypeScriptの型チェック
→ 削除したファイルを参照しているコードがあればエラーになる
npm run build → ビルドが通るか
→ import先が存在しないとビルドエラーになる
# ローカルで確認する必要があること
- 実際にログインできるか(SSO)
- 設定画面が動くか
- 削除されたはずのページが表示されないか
⚠️ CIで検出できないこと
CIは「コードが壊れていないか」は検出できますが、「この機能は本当に使われていないか」は検出できません。「使われていないと思って消したら実は使われていた」という問題は、コードの読み込みとチームへの確認で防ぎます。- デッドコード削除は移行作業の前に必須。放置すると技術的負債になる
- 削除PRのレビューは「何が消えたか」より「消えてはいけないものが残っているか」を確認する
- レビュー前に「絶対に変更されてはいけないファイル」をリストアップする
- CIのグリーン確認+手動での動作確認がセット
コード削除は「勇気」ではなく「確認」です。確認すべきことを確認すれば、怖がらずに不要なコードを消せます。きれいなコードベースは開発速度を上げます。

コメント