> ## Documentation Index
> Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 一般的なユースケース

> Windsurf の代表的なユースケースには、コード生成、単体テスト生成、コードドキュメント作成、API 連携、コードリファクタリングなどがあります。

Windsurf は幅広いユースケースに対応しますが、なかでも本番コードベースで利用される Enterprise のお客様において、特に一般的なユースケースがいくつかあります。

<div id="code-generation">
  ## コード生成
</div>

<AccordionGroup>
  <Accordion title="Boilerplate code">
    **ガイダンス:** このユースケースでは Windsurf が効果的に機能します。単一行候補、複数行候補、fill-in-the-middle（FIM）補完などの機能を活用できます。

    **ベストプラクティス:** Next Completion（`⌥ + ]`）、Context Pinning、@ Mentions、Custom Context を併用することで、最良の結果が得られます。
  </Accordion>

  <Accordion title="Front-end development tasks">
    **ガイダンス:** このユースケースでは Windsurf が効果的に機能します。単一行候補、複数行候補、fill-in-the-middle（FIM）補完などの機能を活用できます。

    **ベストプラクティス:** Next Completion（`⌥ + ]`）、Context Pinning、@ Mentions、Custom Context を併用することで、最良の結果が得られます。
  </Accordion>

  <Accordion title="Back-end development tasks">
    **ガイダンス:** このユースケースでは Windsurf が効果的に機能します。単一行候補、複数行候補、fill-in-the-middle（FIM）補完などの機能を活用できます。

    **ベストプラクティス:** Next Completion（`⌥ + ]`）、Context Pinning、@ Mentions、Custom Context を併用することで、最良の結果が得られます。
  </Accordion>
</AccordionGroup>

<div id="unit-test-generation">
  ## ユニットテストの生成
</div>

<AccordionGroup>
  <Accordion title="ユニットテストを生成し、冗長なテストケースを自動削除する">
    **ガイダンス:** ユニットテスト生成におけるWindsurfの基本的な使い方で、全体の60〜70%は安定して生成できます。エッジケースのカバレッジは、ユーザーがAIモデルに与えるプロンプトの質に依存します。

    **ベストプラクティス:** @メンションを活用する。プロンプトエンジニアリングのベストプラクティスに従う。例:

    `@function-name` のユニットテストを作成し、XおよびY（例: メールドメイン）に関するすべてのエッジケースを網羅する。

    `@testing-utility-class` を使用して `@function-name` のユニットテストを作成する。
  </Accordion>

  <Accordion title="テスト実行用のサンプルデータを生成する">
    **ガイダンス:** 取り組みやすいユースケースに適しています。非常に厳密なAPI仕様や社内ライブラリについては、Windsurfが細部を十分に把握していない可能性があり、生成されるサンプルデータの品質を保証できない場合があります。

    **ベストプラクティス:** 期待するインターフェースをできるだけ具体的に指定する。タスクの複雑さ（単発のLLM呼び出しで十分かどうか）を考慮する。
  </Accordion>
</AccordionGroup>

<div id="internal-code-commentary">
  ## 内部コードに関するコメント
</div>

<AccordionGroup>
  <Accordion title="インラインコメントやコード説明を生成する">
    **ガイダンス:** このユースケースにはWindsurfが適しています。インラインコメントやコード説明の生成にはWindsurf CommandまたはWindsurf Chatを使用してください。

    **ベストプラクティス:** @メンションを活用し、可能な限りCode Lensを使って、LLM呼び出しのスコープが正しく設定されていることを確実にしてください。
  </Accordion>

  <Accordion title="改善提案と不明点の明確化を行う">
    **ガイダンス:** 一般的には、RefactorボタンまたはWindsurf Commandが改善のための最適な呼びかけ方です。説明や明確化を求める場としてはWindsurf Chatが最適です。少し抽象的ではありますが、Windsurfは両方に長けています。

    Windsurf Chatは説明や明確化を求めるのに最適な場所です。

    少し抽象的ではありますが、Windsurfは両方に長けています。

    **ベストプラクティス**: ドロップダウンプロンプト（いわゆるWindsurfのRefactorボタン）を使用してください。期待する回答を得やすいよう最適化したカスタムプロンプトを用意しています。
  </Accordion>

  <Accordion title="関数ヘッダーの自動生成（C/C++/C#）">
    **ガイダンス**: 最も有効な方法は、まずヘッダーファイルを作成し、Chatを開いて、cppファイル内の関数を@メンションしながらヘッダー関数の作成を依頼することです。その後、cppファイル内の各関数について同様に繰り返してください。これが途中のハルシネーションを防ぐ最善策です。

    **ベストプラクティス**: 1回のLLM呼び出しでヘッダーファイル全体を生成しようとするのは避けてください。作業を細かく分割することで、生成コードの品質が大幅に向上します。
  </Accordion>
</AccordionGroup>

<div id="api-documentation-and-integration">
  ## APIドキュメントと統合
</div>

<AccordionGroup>
  <Accordion title="APIの作成と同時にドキュメントを整備し、適切なコンテキストを付与する">
    **ガイダンス**: これはテストカバレッジに近い考え方です。多くのライブラリに共通するAPI仕様の部分については、Windsurfが正確に注釈付けできます。一方で、社内固有のユースケース向けに特別に実装された部分については、期待する品質での対応が難しい場合があります。

    **ベストプラクティス**: テストカバレッジと同様、可能な限り、APIの意図や振る舞いをWindsurfのAIモデルにとって最適な思考手順で段階的に示すと、より適切な注釈付けが可能になります。
  </Accordion>

  <Accordion title="自然言語でリポジトリ内のAPIを検索し、連携用コードを生成する">
    **ガイダンス**: 1回のLLM呼び出しにおけるWindsurfのコンテキスト長は16,000トークンです。したがって、検索範囲によってはリポジトリ横断の検索機能だけでは十分でない場合があります。リポジトリ全体にまたがるマルチステップ・マルチ編集のタスクは、今後のWindsurf製品でサポート予定です。

    これは本質的にマルチステップの課題であり、単発のLLM呼び出し（すなわち現行のAIコードアシスタントの機能）では対処が難しい領域です。さらに、統合は特に壊れやすいため、他のユースケース以上の高い精度が求められます。

    **ベストプラクティス**: 現時点のWindsurfでは、この課題を単独で解決するのは困難です。既存機能の限界を検証したい場合は、ステップごとの計画を作成し、各ステップについて詳細な指示を添えて個別にWindsurfへプロンプトし、AIを誘導してください。
  </Accordion>
</AccordionGroup>

<div id="code-refactoring">
  ## コードのリファクタリング
</div>

<AccordionGroup>
  <Accordion title="コードの単純化とモジュール化">
    **ガイダンス**: 必要なコンテキストがすべて LLM に渡るよう、Windsurf の Code Lenses または @ Mentions を使って適切にスコープを絞ってください。

    単一の LLM 呼び出しで扱えるコンテキスト長には上限があります。したがって、リファクタリングの範囲によってはこの制約が問題になることがあります（単発の LLM パラダイム全般に当てはまります）。リポジトリ全体にわたるマルチステップ・マルチ編集のタスクは、Windsurf の [Cascade](/ja/windsurf/cascade) でサポートされています。

    **ベストプラクティス**: プロンプトはできるだけ細かく分解しましょう。リファクタリングの指示は簡潔で短いほど効果的です。
  </Accordion>

  <Accordion title="可読性・保守性向上のためのコード再構成">
    **ガイダンス**: 必要なコンテキストがすべて LLM に渡るよう、Windsurf の Code Lenses または @ Mentions を使って適切にスコープを絞ってください。

    Windsurf の単一の LLM 呼び出しで扱えるコンテキスト長は 16,000 トークンです。したがって、リファクタリングの範囲によっては、この制約が問題になることがあります（単発の LLM パラダイム全般に当てはまります）。リポジトリ全体にわたるマルチステップ・マルチ編集のタスクは、今後の Windsurf 製品でサポートされる予定です。

    **ベストプラクティス**: プロンプトはできるだけ細かく分解しましょう。リファクタリングの指示は簡潔で短いほど効果的です。
  </Accordion>
</AccordionGroup>
