【衝撃レポート】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との対話で一気に進んだんです。
コードレビューの革命
次に印象的だったのが、プルリクエストのレビューです。
従来の流れ:
- 自分でコードを確認(30分)
- チームメンバーに依頼(返事待ち:半日〜1日)
- 修正対応(往復で数時間)
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: 「プロトタイプ+改善」
いきなり完璧を求めるのではなく:
-
プロトタイプ作成
claude "まずはシンプルな商品一覧コンポーネントを作ってください" -
段階的改善
claude "先ほどのコンポーネントに検索機能を追加してください" -
最適化
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% |
👍 良かったこと
- 学習速度の向上: 新しい技術を覚える時間が大幅短縮
- 品質向上: レビュー品質が向上、バグが減った
- 創造性の向上: 単純作業から解放され、設計に時間を使えた
- チーム貢献: 他のメンバーにも知見を共有できた
😅 課題・限界
- コスト: 月額約$35(想定より高い)
- 依存性: Claude Codeなしでは効率が落ちる
- 学習コスト: 効果的な使い方を覚えるまで時間がかかる
- 過信リスク: AIの提案を鵜呑みにしてしまう危険
チームの反応:賛否両論
👍 ポジティブな反応
先輩エンジニア(Aさん):
「ハヤシくんのコードレビューコメントが的確になった。Claude Codeからいろんなパターンを学んでるのかな?」
プロジェクトマネージャー(Bさん):
「予定より早く完了できそう。この調子なら次のフェーズも前倒しできるかも」
😐 懸念の声
ベテランエンジニア(Cさん):
「便利だけど、基礎力が身につかなくなりそう。新人にはどうかな?」
デザイナー(Dさん):
「AIが作ったコンポーネント、デザインの意図と微妙にズレることがある」
3つの重要な学び
1. AIは「魔法」ではなく「ツール」
最初は「何でもやってくれる」と期待しすぎました。実際は:
- 適切な指示が必要
- 結果の検証は必須
- 文脈の共有が品質を左右
2. チーム全体での活用が重要
個人で使うより、チームで共通認識を持って使う方が効果的でした:
- CLAUDE.mdの共同管理
- ベストプラクティスの共有
- レビュー基準の統一
3. 段階的な導入が成功の鍵
いきなり全面導入するのではなく:
- 低リスクなタスクから開始
- 効果を測定しながら徐々に拡大
- 失敗から学んで改善
これから使い始める人へのアドバイス
まずはこれから始めよう
- ドキュメント作成: リスクが低く、効果が分かりやすい
- コード説明: 既存プロジェクトの理解に最適
- 簡単なリファクタリング: 提案→検証→実装のサイクルを学べる
避けた方がいいこと
- いきなり重要機能を任せる: まずは信頼関係を築く
- AIの提案を鵜呑みにする: 必ず検証・理解してから採用
- チームに相談せずに導入: 巻き込んで一緒に学ぶ
最後に
Claude Codeは確実に開発体験を変えてくれるツールです。でも、使い方次第で毒にも薬にもなります。
重要なのは:
- 過度な期待をしないこと
- 段階的に学習すること
- チームと一緒に成長すること
みなさんの体験談もぜひコメントで教えてください!一緒に最適な使い方を見つけていきましょう🚀
Discussion