Codex vs. Claude Code: A Production Monolith Perspective

プロダクション環境におけるAIコードアシスタントの状況を把握することは、特に確立された複雑なコードベースを扱う場合、困難な試みとなる可能性があります。この記事では、ある開発者が1年間にわたる道のりと、OpenAIのCodexとAnthropicのClaude Code(具体的にはOpus 4.6および4.7)を、実際の多層的なPythonバックエンド・モノリスに対して、直近の1ヶ月間比較した詳細を記述します。共有される洞察は、制御されたベンチマークによるものではなく、日常的な運用使用から得られたものであり、レガシーコードや特定のビジネスロジックの制約下でこれらのツールがどのように機能するかについての、実践的な視点を提供します。

The Production Monolith Challenge

対象となるコードベースは、数年経過したPythonバックエンドであり、さまざまなアーキテクチャ・スタイルの混在が特徴です。新しい実験的なDomain-Driven Design (DDD)-ishなレイヤー、古いが構造化されたレガシー・コンポーネント、そして非常に古く脆弱なスパゲッティ・コードが含まれています。このモノリスの運用戦略は、絶対に必要な場合を除いてリライトを避け、自然な置き換えや削除が行われるまで古い部分には手を付けないことを好むというものです。これは単純なCRUDアプリケーションではありません。多数のA/Bテストや非常に特定のビジネスロジックを備えた複雑なシステムであり、あらゆるAIアシスタントにとって挑戦的な環境です。

Why Codex Excels for Backend Development

このプロダクション環境のPythonモノリス特有の要求に対し、Codexは開発者のワークフローとの整合性と優れたパフォーマンスを一貫して示しました。

Adherence to Harness Engineering

Codexが好まれた主な理由の一つは、OpenAIが概説しているharness-engineeringの原則をより良く遵守できる能力にありました。このアプローチは、堅牢でテスト可能なシステムを構築することを強調します。対照的に、Claudeは、同様のワークフローを確実に遵守させるために、AGENTS.mdファイル内で非常に明示的で短い指示(例:「exec_plan.mdを読み、それに従う」)を必要とすることがよくありました。

Prioritizing Existing Tooling

数年間の開発を経て構築されたコードベースにおいて、既存のプロジェクト固有のツールやパターンを再利用することは、一貫性と保守性のために極めて重要です。Codexは、新しいツールを作成しようとする前に、既存のツールをコードベース内で検索する能力に長けていることが証明されました。一方で、Claudeは頻繁に新しいツールを生成してしまい、不必要な重複や確立されたパターンからの逸脱を招くことがありました。

Superior Contextual Understanding and Planning

Codexは、複雑なタスクに対してより効果的なプランニング・モードを示しました。プロンプトに十分なコンテキストが欠けている場合にそれを認識し、アーキテクチャの変更を提案する前に、積極的に自発的な質問を投げかけることがよくありました。このプロアクティブなアプローチは、Claudeで大きな問題点となっていた、広範な修正のやり取り(back-and-forth corrections)の必要性を最小限に抑えました。

Claude's Limitations in a Complex Backend Environment

強力ではあるものの、プロダクション環境のモノリスの複雑さに対して適用した場合、Claudeはいくつかの課題を提示しました。

Tendency to Reinvent the Wheel

前述の通り、Claudeの既存のツールを活用・発見するのではなく、新しいツールを作成しようとする傾向は、繰り返される問題でした。この挙動は、確立されたパターンが極めて重要である成熟したコードベースにおいて、不整合性や技術的負債を導入する可能性があります。

Insufficient Contextual Grasp

Claudeは、新しい機能の配置場所を提案する前に、コードやドキュメントを読み込む量が不十分なことが頻繁にありました。これにより、適切なモジュールではなくコントローラーに新機能を追加することを提案したり、APIレスポンスを誤解釈したりするなど、誤ったアーキテクチャの決定を下すことがよくありました。

The Cost of Iterative Correction

Claudeの出力を修正するには、多くの場合、複数回の具体的な指示が必要でした。例として、「この機能はコントローラーではなく、代わりにモジュールAに入れてください。そこが正しい場所です」や「リクエストで送信したステータスを使用してレスポンス・オブジェクトを構築しないでください。APIはすでに更新されたオブジェクトを返しています。そのレスポンスを使用し、結果に含め、その状態が期待通りであることを検証してください」といった指示が挙げられます。この反復的な修正プロセスは、疲弊させるものであり、非効率的であり、Claudeの複雑なバックエンド・タスクにおける初期プランニングとコンテキストの統合におけるギャップをハイライトしています。

A Different Landscape: Frontend Development

Codexがバックエンド業務において優位に立っていた一方で、フロントエンド開発においては状況が逆転しました。

Claude's Edge in UI Tasks

開発者は、Claude Opus 4.6がCodex 5.3やGPT-5.4と比較して、フロントエンド業務において著しく優れていることを発見しました。UIタスクにおいて、Claudeは好ましいツールでした。この意見は他の開発者からも支持されています。

"Codexはフロントエンドがひどい。既存のリポジトリを渡し、そこからUIのスタイリングやパターンを適用するように指示したが、それでも典型的な『コード感』のある見た目になってしまった(他のリポジトリで全て定義済みだったにもかかわらず)。Claudeは完璧にこなす。 (Claude/designは明らかにClaude CodeやCodexよりも優れている)"

これは、Claude、特にそのデザイン重視のバリエーションが、UIのスタイリングやパターンをより強く理解していることを示唆しており、視覚的に一貫貫性のあるモダンなフロントエンド・コードを生成する上で、より効果的であることを示しています。

Emerging Perspectives on Newer Models

あるコメント投稿者は、新しいモデルの経験について次のように述べています。

"最近、ClaudeからCodex + GPT-5.5 (with image2)に切り替えたが、UI-first開発の感覚が全く異なる。"

元の著者はGPT-5.5をUI重視の重いタスクスクタスクにおいてまだテストしていないものの、このコメントは、Codex/GPTの新しいイテレーション、特にimage2のようなマルチモーダル機能を持つものについては、フロントエンドの状況を状況を変化させ、UI-firstのワークフローに新たな道を開く可能性があることを示唆しています。

Sources