🔥

【衝撃レポート】Claude Codeで月10万PVサイト開発!4週間の成果と失敗全記録

に公開

こんにちは!前回までで Claude Code の始め方をお話ししましたが、今回は「実際の仕事でどう使ったか」をリアルにレポートします。

2週間前から、実際のクライアント案件(ECサイトのリニューアル)でClaude Codeをメインで使ってみました。その結果、予想以上の成果もあれば、「あぁ、これは失敗だった」という場面も。

正直な体験談をシェアするので、これからClaude Codeを仕事で使おうか迷っている方の参考になれば嬉しいです!

プロジェクト概要:「中規模ECサイトのリニューアル」

まず、どんなプロジェクトだったかを簡単に:

  • 規模: 月間10万PVのECサイト
  • 期間: 3ヶ月(私が参加したのは最後の1ヶ月)
  • 技術: Next.js + TypeScript + Stripe
  • チーム: デザイナー1名、フロントエンド2名(私含む)、バックエンド1名
  • 私の担当: フロントエンド全般、API連携

🚀 Week 1: 衝撃の瞬間「これは革命だ!」

最初のミッション:既存コードの理解

プロジェクトに参加して最初の課題は「3年間改修され続けたレガシーコードの理解」でした。

通常なら1週間はかかる作業を、Claude Codeと一緒にやってみました:

claude "このプロジェクトの全体構造を分析して、
        主要な機能とデータフローを教えてください。
        特に決済周りの処理に注目してください。"

結果

  • 所要時間: 2日 → 4時間
  • 理解度: 詳細な構造図とフローチャートを自動生成
  • 発見: 誰も気づいていなかった古いAPIの呼び出し3箇所を特定

チームの反応: 「え、もう理解したの?」

正直、私自身が一番驚きました。普通なら数日かけてコードを読み込んで、ドキュメントを作って...という作業が、AIとの対話で一気に進んだんです。

コードレビューの革命

次に印象的だったのが、プルリクエストのレビューです。

従来の流れ

  1. 自分でコードを確認(30分)
  2. チームメンバーに依頼(返事待ち:半日〜1日)
  3. 修正対応(往復で数時間)

Claude Code活用後

claude "このPRをレビューしてください。
        特にセキュリティ、パフォーマンス、
        保守性の観点で評価をお願いします。"

結果

  • レビュー時間: 平均30分 → 5分
  • 品質: 人間が見落としがちな細かい問題も検出
  • 学習効果: レビューコメントから新しい知識を得られる

具体例

// 私が書いたコード
const users = await Promise.all(
  userIds.map(id => getUserById(id))
);

// Claude Codeの指摘
⚠️ N+1クエリ問題の可能性があります
推奨: getUsersByIds(userIds) のようなバッチ取得APIの使用

// さらに改善案も提示
const users = await getUsersByIds(userIds);
// または
const users = await db.users.findMany({
  where: { id: { in: userIds } }
});

正直な感想: 「このレベルのレビューを無料で受けられるなんて...」

💥 Week 2: 現実の壁!まさかの大失敗連発

調子に乗っていた私に、現実が立ちはだかります。

失敗1: 「デザインシステムを無視した提案」

決済画面のコンポーネントをClaude Codeに作ってもらったところ:

// Claude Codeが生成したコード(一部)
const PaymentButton = () => (
  <button 
    className="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"
    onClick={handlePayment}
  >
    決済する
  </button>
);

問題: 会社のデザインシステムを完全に無視していました。

原因: CLAUDE.mdにデザインシステムの情報を書いていなかった

解決策: CLAUDE.mdを更新

## デザインシステム
- カラーパレット: primary(#2563eb), secondary(#64748b)
- ボタンコンポーネント: <Button variant="primary" size="lg">
- スペーシング: 8px単位のグリッドシステム使用必須

学び: AIも「知らないことは知らない」。文脈の共有が超重要。

失敗2: 「過度に最適化されたコード」

パフォーマンス改善を依頼したところ、Claude Codeが超高度な最適化コードを提案してきました。

// Claude Codeの提案(一部抜粋)
const MemoizedProductList = memo(({ products }: Props) => {
  const virtualizer = useVirtualizer({
    count: products.length,
    getScrollElement: () => parentRef.current,
    estimateSize: useCallback(() => 120, []),
    overscan: 5,
  });
  // ...50行以上の複雑なロジック
});

問題:

  • チームの誰も理解できない
  • オーバーエンジニアリング
  • デバッグが困難

解決策: 「シンプルな改善から始めたい」と伝え直す

claude "パフォーマンス改善したいですが、
        チームが理解できるシンプルな方法でお願いします。
        まずは基本的な最適化から段階的に進めたいです。"

結果: useMemoとuseCallbackを使った適度な最適化案を提案してくれました。

学び: 「高度=良い」ではない。チームのレベルに合わせた提案をお願いする必要がある。

Week 3-4: 使い方のコツを掴む

失敗から学んで、使い方を調整しました。

成功パターン1: 「段階的な指示」

悪い例:

claude "ショッピングカート機能を作って"

良い例:

claude "ショッピングカート機能を実装したいです。
        まず設計方針を相談させてください。
        
        要件:
        - 商品の追加・削除・数量変更
        - 合計金額の自動計算
        - localStorage での永続化
        
        既存のコンポーネント構成と整合する
        設計アプローチを提案してもらえますか?"

成功パターン2: 「プロトタイプ+改善」

いきなり完璧を求めるのではなく:

  1. プロトタイプ作成

    claude "まずはシンプルな商品一覧コンポーネントを作ってください"
    
  2. 段階的改善

    claude "先ほどのコンポーネントに検索機能を追加してください"
    
  3. 最適化

    claude "パフォーマンスを改善してください"
    

この方法だと、各段階で理解・確認しながら進められます。

成功パターン3: 「ペアプログラミング」感覚

一番効果的だったのは、Claude Codeを「隣にいる先輩エンジニア」として扱うことでした。

# 実際の対話例
私: "この部分でエラーが出るんですが、原因が分かりません"

Claude: "エラーメッセージを見せてもらえますか?"

私: [エラーログを貼り付け]

Claude: "TypeScriptの型エラーですね。productsの型定義が不完全です。
        以下のように修正してみてください..."

私: "なるほど!ついでに、この部分のテストも書いてもらえますか?"

Claude: "もちろんです。以下のようなテストケースはいかがでしょう..."

この使い方のメリット:

  • 自然な会話で進められる
  • 疑問点をその場で解決できる
  • 段階的に学習できる

最終成果:数字で見る効果

4週間の結果を正直に公開します:

⏰ 時間効率

作業 従来 Claude Code使用 削減率
コード理解 2日 4時間 75%
新機能実装 8時間 3時間 62%
バグ修正 1時間 20分 67%
テスト作成 2時間 30分 75%
ドキュメント 4時間 1時間 75%

👍 良かったこと

  1. 学習速度の向上: 新しい技術を覚える時間が大幅短縮
  2. 品質向上: レビュー品質が向上、バグが減った
  3. 創造性の向上: 単純作業から解放され、設計に時間を使えた
  4. チーム貢献: 他のメンバーにも知見を共有できた

😅 課題・限界

  1. コスト: 月額約$35(想定より高い)
  2. 依存性: Claude Codeなしでは効率が落ちる
  3. 学習コスト: 効果的な使い方を覚えるまで時間がかかる
  4. 過信リスク: AIの提案を鵜呑みにしてしまう危険

チームの反応:賛否両論

👍 ポジティブな反応

先輩エンジニア(Aさん):
「ハヤシくんのコードレビューコメントが的確になった。Claude Codeからいろんなパターンを学んでるのかな?」

プロジェクトマネージャー(Bさん):
「予定より早く完了できそう。この調子なら次のフェーズも前倒しできるかも」

😐 懸念の声

ベテランエンジニア(Cさん):
「便利だけど、基礎力が身につかなくなりそう。新人にはどうかな?」

デザイナー(Dさん):
「AIが作ったコンポーネント、デザインの意図と微妙にズレることがある」

3つの重要な学び

1. AIは「魔法」ではなく「ツール」

最初は「何でもやってくれる」と期待しすぎました。実際は:

  • 適切な指示が必要
  • 結果の検証は必須
  • 文脈の共有が品質を左右

2. チーム全体での活用が重要

個人で使うより、チームで共通認識を持って使う方が効果的でした:

  • CLAUDE.mdの共同管理
  • ベストプラクティスの共有
  • レビュー基準の統一

3. 段階的な導入が成功の鍵

いきなり全面導入するのではなく:

  • 低リスクなタスクから開始
  • 効果を測定しながら徐々に拡大
  • 失敗から学んで改善

これから使い始める人へのアドバイス

まずはこれから始めよう

  1. ドキュメント作成: リスクが低く、効果が分かりやすい
  2. コード説明: 既存プロジェクトの理解に最適
  3. 簡単なリファクタリング: 提案→検証→実装のサイクルを学べる

避けた方がいいこと

  1. いきなり重要機能を任せる: まずは信頼関係を築く
  2. AIの提案を鵜呑みにする: 必ず検証・理解してから採用
  3. チームに相談せずに導入: 巻き込んで一緒に学ぶ

最後に

Claude Codeは確実に開発体験を変えてくれるツールです。でも、使い方次第で毒にも薬にもなります。

重要なのは:

  • 過度な期待をしないこと
  • 段階的に学習すること
  • チームと一緒に成長すること

みなさんの体験談もぜひコメントで教えてください!一緒に最適な使い方を見つけていきましょう🚀

GitHubで編集を提案

Discussion