Skip to main content

Command Palette

Search for a command to run...

コーディングエージェント

すべてを組み合わせる

おめでとうございます。コーディングエージェントと協調して作業する方法を学びました。

エージェントを使ってコードベースを理解し、機能をすばやく作成し、コードを検索してバグを見つけ、より効率的にコードを確認し、ニーズに合わせてエージェントをカスタマイズする方法がわかりました。この章では、これらすべてを組み合わせた例を紹介します。

エンドツーエンドの例

eコマースプラットフォームを運営するチームに加わりました。チェックアウトフローに割引コードを追加する必要があります。コードベースには不慣れで、この機能は週末までにリリースしなければなりません。

これは現実的な状況です。作る前に探索し、コードを書く前に計画し、リリース前にテストし、マージ前に確認する必要があります。

ステップ1: コードベースを理解する

変更を加える前に、チェックアウトフローを探索します。エージェントを使って全体像を把握しましょう。

Ask mode example: チェックアウトフローを探索する
チェックアウトフローに割引コードを追加する必要があります。変更を加える前に、チェックアウトの仕組みを説明してください。どのコンポーネント、API ルート、サービスが関係していますか?カートから支払い確認までのデータフローを示してください。

不足している情報を補うため、追加の質問をします。

Ask mode example: 割引を適用する箇所を見つける
TypeScriptsrc/services/PricingService.ts の価格計算はどのように行われていますか?注文合計はどこで計算され、このフローのどこで割引を適用できますか?

これにより、コードベースを理解するで紹介した検索手法を組み合わせてチェックアウトフローを追跡し、見つかった内容を要約します。

ステップ 2: 機能の計画を立てる

コードベースを理解したら、計画を立てます。Plan モード (Shift+Tab) に切り替え、作業内容の概要をまとめます。

Plansdiscount-codes.md

割引コード

概要

チェックアウトで割引コードを使えるようにします。ユーザーがコードを入力すると、システムが検証し、税額計算前の注文合計に割引が適用されます。

アプローチ

検証ロジック(有効期限、利用上限)を備えた DiscountService を追加する
任意の割引を受け取れるように PricingService.calculateTotal() を変更する
OrderSummary コンポーネントに割引コードの入力欄を追加する
/api/discount/validate エンドポイントを追加する

タスク

discount_codes テーブルのマイグレーションを作成する
applyDiscount() を備えた DiscountService を作成する
PricingService.calculateTotal() に割引処理を追加する
OrderSummary コンポーネントにコード入力 UI を追加する
/api/discount/validate ルートを追加する
すべての割引タイプとエッジケースのテストを作成する

計画を確認します。初回リリースには大がかりすぎるステップを削除します。コードを適用し、割引を計算して、概要に表示するという中核フローに集中します。次に、作る をクリックして、この機能の最初のバージョンを作成します。

ステップ3: 失敗するエッジケースをデバッグする

ビルド後も、1つのテストが失敗し続けています。割合割引と固定額割引を重ねて適用すると、合計額が正しくなりません。同じ割引の組み合わせでも、適用順序によって結果が異なります。

デバッグモードを使用するか、エージェントに根本原因の調査を依頼します。

Agent example: 根本原因をデバッグする
割引の重ね適用テストが失敗しています。同じ割引でも、適用順序によって合計額が異なります。原因を調べ、TypeScriptsrc/services/DiscountService.ts の割引適用順序を修正してください。各ステップで修正前と修正後の値を表示してください。

これは「Finding and Fixing Bugs」章のデバッグ原則に沿ったものです。症状を修正するのではなく、原因を見つけましょう。

ステップ4:レビューとテスト

プッシュする前に、セルフレビューを行います。

Ask mode example: プッシュ前のセルフレビュー
割引コード機能のために加えたすべての変更をレビューしてください。バグ、不足しているエラー処理、エッジケース、既存のパターンとの一貫性を確認してください。コードレビュアーなら何を指摘するでしょうか?

Cloud Agent を設定している場合は、見落としている可能性のあるエッジケースをテストするために、いくつか起動します。たとえば、割引コード内の Unicode 文字、大きな割引額、コードの同時利用などです。Cloud Agent はテストしたケースと、さらにテストが必要な領域を報告するため、マージ前に抜け漏れを補えます。

ステップ5: ルールを作成する

この機能の実装を通じて、割引計算では入力順にかかわらず一貫した結果が得られるよう、固定額割引より先にパーセント割引を常に適用すべきだと学びました。次回に備えて、エージェントが把握できるようこれをルールに記録します。

# 価格設定ルール- 固定額割引より先にパーセント割引を適用する- 注文合計は $0 を下回ってはならない- 正式な計算パターンは src/services/PricingService.ts を参照してください

これで一連の流れは完了です。探索、計画、実装、テスト、デバッグ、確認を行い、将来に向けた知識を蓄積しました。

割引コード機能を完成させました。チームメイトから、来週ギフトカードを追加してほしいと頼まれました。最初に何をしますか?

作り続けよう

学んだことを身につける最良の方法は、ここで学んだことを実践に活かすことです。

ツールやモデルは急速に進化しており、具体的な手法も時間とともに変わっていきます。しかし、コーディングエージェントと協働する方法を学ぶという核となるスキルは、積み重ねるほど効果を発揮します。これは、ソフトウェアエンジニアリングで最も重要なスキルの一つになりつつあります。

コーディングエージェントの可能性を限界まで引き出すことで、新しいツールやモデルがリリースされるたびに、その力を最大限に活用できます。幸運を祈ります。好奇心を持ち続けてください!

この章は完了しました