🤖

Claude codeでリファクタリングをした体験記

に公開

Claude Codeでリファクタリングした1年前のFastAPIコードから得た知見

はじめに

Claude Codeを用いて、1年前に作成したFastAPI主体のコードをリファクタリングしました。
その時に得られたClaude codeに対する知見を書き残します。

Claude codeの小技集やハンズオンとかではなく、実際に使用して感じた課題などを感想ベースで記載します。
ご意見があれば気軽にコメントして頂きたいです。

前提

やったこと

https://github.com/dbd-fish/template_web_system_fastapi-react

上記のリポジトリについて、Claude Codeを用いてバックエンド部分のリファクタリングを実施しました。

主要なリファクタリング内容:

  • Docker環境の見直し
  • ディレクトリ構成の大幅なアップデート
  • 動作環境の見直しによるAPI修正
  • OpenTelemetryなど一部実装の追加
  • コメント、Ruffなどの見直し
  • 単体テスト環境の見直し
  • pydanticモデルの見直し
  • ログの見直し
  • など

結果は下記のリポジトリのfeature/first-fixブランチに格納しました。
https://github.com/dbd-fish/templete_web_system/tree/feature/first-fix

筆者の知識

AI関連

  • ChatGPTなどに相談しながらコーディングするレベル
  • 「命令は具体的に記載する」「長い命令は分割して精度を向上させる」などの基本的なプロンプトテクニックを知っている
  • ChatGPTのメモリ機能などの事前プロンプトはあまり意識していない
  • GitHub CopilotやCursorなどのAIコーディングアシスタントを無料枠内で試したことがある

エンジニア関連

  • Python、PHPなどの開発経験あり
  • LaravelやDjangoなどのWebアプリフレームワークは開発経験あり
  • FastAPIは学習のみで開発経験なし
  • フロントは開発経験があるが、モダンフレームワークは頑張って読む
  • クラウドインフラはAWS SAAに合格したぐらいの知識量。業務で触れる機会あり
  • LLMなど機械学習関連の開発経験なし

結論

積極的に取り入れて業務効率を爆上げするべきと感じました。
しかし、Claude Codeが優秀すぎるがゆえにClaude Codeへの依存度が高くなるため、注意が必要です。
そして、短時間では人間(筆者)がチェックしきれない量の成果物を出してくることが課題に感じました。

感じたこと

Claude Codeは便利すぎる

自分でコードを実装する必要がないぐらい便利です。
今回のリファクタリングでは、9割以上はClaude Codeが書いています。

設計の相談にも乗ってくれるので、設計や実装の時間を大幅に削減できました。
また、私が知らないことも提案してくれるのでありがたいです。

事前情報を渡す手間を省ける

インストールして使用するため、リポジトリの内容を追跡&把握した上でユーザーの質問に回答したりコーディングしてくれる。

今までの生成AIツールでは、必要な情報(ファイル名や該当箇所など)をユーザーが明示的に渡す必要があったが、Claude Codeは勝手に探してくれる。そのため、現状のプロジェクトに沿ったコーディングをしてくれる。つよい。

事前情報渡しをサボることでトークン数が増加してレート制限に達する可能性が高くなるので注意が必要です。

比較的安い

月額20ドルのレート制限ありだが、勝手に必要な事前情報を探索してプロジェクトに沿ったコーディングをするという利点に比べれば安いです。
コーディングのためにChatGPTなどに課金している人はClaude Codeに乗り換えた方がいい。

Claude Codeにどの操作を許可するか設定が便利

Claude CodeがCLIを操作してファイル探索やファイル修正などができる。
つまり、Claude Codeが自分のPC内でコマンドを実行している状況であり、勝手にGitHubにコミットなども出来てしまう。

それらを抑止するために、.claude\settings.local.jsonからClaude Codeが実行していいコマンドや実行NGなコマンドを管理することができます。

私の場合は

  • Git操作をNG
  • ファイル操作やDocker環境の実行など開発に必要なコマンドはallow
    などを設定しています。

Claude Codeの設定を組織内で確立すれば操作事故が防げます。

待ち時間が気になってしまう

1回の命令で複数ファイルにわたるコーディングも実現してくれますが、関連ファイルを探して読み込んだりするため、数分程度の時間がかかることもあります

2~3分をぼーっと過ごすには長いが他の仕事をするには短いため、待ち時間に何をするべきか迷うことが多かったです。

家にいるなら家事などができますが、仕事場などではどのように過ごすのが正解なのかわかりませんでした。

Proプランではレート制限が怖い

5時間ごとにトークン量を監視してレート制限がされるため、トークンを短時間で大量に消費すると数時間のレート制限解除待ちが発生します。

改善方法として

  • 課金してMaxプランにする
  • トークン利用が少なくなるプロンプトを意識する
    などによりある程度は解決します。

Claude Proには使用制限がありますか?

コーディングミスはある

ほぼ完ぺきなコーディングなどをするために確認を怠りたくなりますが、たまにミスっています

私の場合は

  • 単体テストがPassしないコーディング
  • 使用していない関数の放置
  • Ruffなど使用しているフォーマッタに沿わないコーディング

などがありました。

Ruffや単体テスト実施する旨をCLAUDE.mdに記載すればある程度は解決します。

おかしな挙動を起こすこともある?

失敗するコマンドを何回も実行する現象が発生しました。

添付画像はトークン数などに実害はないため笑える状況でした。
意味もなくトークン消費をされる可能性もあるため、完全放置はできないなという印象です。

代替えサービスがない(2025年7月時点)

プロジェクトに沿ったコーディングを簡単に実現してしまうため、同等のパフォーマンスを発揮できるサービスが他に存在しないです(筆者の主観)。
GitHub CopilotやCursorなどが近いが、事前情報を正確に渡す必要があるため、プロジェクトに沿ったコーディングを常時実現することが難しいため、完全な代替えにはなりません。

Claude Codeが使えなくなる状況(大規模障害、大幅な値上げ、セキュリティリスクの露呈など)になったとき、代替え手段がないため業務に与えるダメージが大きいです。

今後、似たようなサービスが出てこないと、業務に取り入れるにはリスクが付きまとう。

人間のキャパを超えた仕事量をこなす

筆者の主観的な意見です。

「FastAPIでログイン機能を作成して」と命令して、いくつかの追加命令を出すだけで

  • ディレクトリ設計
  • 必要なライブラリのインストール
  • プログラムの設計と実装(APIのルート作成、テーブル操作、ミドルウェア作成、モデル作成、pydanticモデルの作成、認証と認可など)
  • テーブル設計
  • コーディング
  • ログの設計&実装
  • 単体テスト環境の構築
  • 単体テストの作成
  • GitHub ActionsなどのCI/CD環境の構築

を短時間で作成します。使い慣れている人が使えば半日もかからないかもです。

Claude Codeも生成AIの一種なので、誤ったコーディングをする可能性があります。
そのため、業務でClaude Codeを使うなら、人間がコードをチェックする必要があります

しかし、コーディング対象の機能や単体テスト設計など多岐にわたる知見を人間側が有して、短時間で生成される大量のコーディングをチェックするのは難しいです。

結果として、Claude Codeが大量の業務をこなしてくれても、それをチェックする人間側が追い付かず**業務効率はある程度で頭打ちになるのでは?**と感じました。

チェック量を大きく減らす&チェックしないという方針なら解決しますが、生成AIのアウトプットをチェックせずに問題になった企業もあるため、私にもどうすればよいかよくわかりません。。

おわりに

今後の展望

業務でClaude Codeを使ってみたいです。
他の人がClaude Codeの精度を上げるためにどんなCLAUDE.mdを使用しているのか気になりました。
tmuxと組み合わせることで複数のClaude Codeを並列で走らせることが可能らしいのでやってみたいですが、tmuxの学習がしんどいです。

感想

Claude Codeの始め方やチーとコマンド集などはたくさん記事がありますが、Claude Codeを使った感想があまりなかったので書いてみました。
Claude Codeが便利であることは色んな人が言っていますが、コーディング量に対して人間のチェックが追い付かないことを言及している人はあまりいませんでした。
たまに生成AI書かせたようなおかしな日本語をメールなどで見ますが、生成AIの成果物って業務ではどれくらいチェックすることが主流なんですかね?
コーディングで生成AIを業務で利用している企業はどうしてるのか気になりました。

生成AIの成果物の精度が上がればエンジニアがいらない時代がくるようで怖いです。

Discussion