06 — 言語別ガイド
言語・フレームワーク別の注意点と活用法
Java / VB.NET / C#.NET / ASP.NET Core / TypeScript それぞれの特性に合わせた
AI開発ツール活用のポイント・推奨IDE・テスト方法・プロンプト設計の注意点を解説します。
言語を選択
推奨IDE
VS Code(Eclipseより優先)
コンテキスト参照量と拡張機能の成熟度が高く、Copilotの精度が出やすい
テストフレームワーク
JUnit5 + Mockito
Gradleでの実行:./gradlew test --tests クラス名
AI開発ツール活用のポイント
| 場面 | ポイント |
| Entity/Model生成 | テーブル定義mdファイルを参照させる。カラム名・型・NULL可否を明示することで正確なフィールド定義が生成される |
| SQL生成 | Doma2の場合はSQLファイルの場所と命名規則をproject_info.mdに記載しておく。既存SQLを参照例として示す |
| JUnit生成 | テスト対象クラス・メソッド・処理概要・判定仕様・前提条件を明示する。既存テストクラスのパターンを参照させる |
| DI方式 | Spring/Quarkus/MicronautでDI流儀が異なる。利用FWごとのDI方針をcoding_rules.mdに明記して混在を防ぐ |
| 起動方式 | Quarkus/Micronautは軽量起動やネイティブ化を選べる。起動方式とビルド方針(JVM/Native)をproject_info.mdで固定する |
| 標準準拠 | Jakarta EEを使う場合は、JAX-RS/CDI/JPAのどこまでを標準採用するかを先に定義する |
| 実行モデル | Vert.xを使う場合は、Event Loopをブロックしない設計制約をrulesに明記する |
| 例外処理 | プロジェクト固有の例外クラス・ハンドラーをproject_info.mdに記載し、Agentが既存パターンに沿って実装するよう指示する |
mdファイルに記載すべき情報
- Javaバージョン・利用フレームワーク(Spring Boot/Quarkus/Micronaut/Jakarta EE/Vert.x)・ビルドツール(Maven/Gradle)
- パッケージ構成(controller/service/repository/entity/dto など)
- DBアクセス方法(Doma2/MyBatis/JPA など)とSQLファイルの配置場所
- テストの実行方法・テストクラスの命名規則・配置場所
- ログ出力方法・例外処理パターン
Eclipse vs VS Code: Eclipseでも動作しますが、VS CodeはCopilotとの統合度が高く、
ワークスペース全体のコンテキストを参照した補完精度が優れています。
特に複数ファイルにまたがる調査・設計作業ではVS Codeを推奨します。
推奨IDE
Visual Studio 2022
CopilotのVS拡張が成熟しており、ソリューション全体のコンテキストを活用しやすい
テストフレームワーク
MSTest / NUnit / xUnit
Visual Studioのテストエクスプローラーから実行
AI開発ツール活用のポイント
| 場面 | ポイント |
| VB固有構文 | VB.NETはC#と構文が異なるため、「VB.NETで実装してください」と明示する。C#コードを生成されないよう注意 |
| Null処理 | VB.NETのNothing/IsNothing/IsNullOrEmptyの使い分けをcoding_rules.mdに明記する |
| イベントハンドラ | WinFormsの場合、イベント名・コントロール名・処理概要を明示する。既存ハンドラのパターンを参照させる |
| ADO.NET/ORM | DataSet/DataTable/Entity Frameworkなど使用するDBアクセス方法をproject_info.mdに明記する |
| Option Strict | Option Strict On/Offの設定をproject_info.mdに記載し、型変換の扱いを統一する |
mdファイルに記載すべき情報
- .NETバージョン・対象フレームワーク(WinForms/WebForms/WPFなど)
- Option Strict/Option Explicit の設定
- DBアクセス方法(ADO.NET/Entity Framework/Dapper など)と接続文字列の管理方法
- エラーハンドリングパターン(Try-Catch-Finally の使い方)
- 共通モジュール・ユーティリティクラスの場所と使い方
注意: CopilotはC#の方が学習データが豊富なため、VB.NETの生成精度はC#より低い場合があります。
生成されたコードは必ずVB.NET構文として正しいか確認してください。
特にDim宣言・Nothing比較・AndAlso/OrElseの使い方に注意してください。
推奨IDE
Visual Studio 2022
IntelliSenseとCopilotの統合が最も成熟している
テストフレームワーク
xUnit / NUnit / MSTest
dotnet test または Visual Studioのテストエクスプローラー
AI開発ツール活用のポイント
| 場面 | ポイント |
| LINQ活用 | LINQの使用方針(メソッド構文/クエリ構文)をcoding_rules.mdに明記する。Agentは両方を混在させることがある |
| async/await | 非同期処理の使用方針をproject_info.mdに明記する。同期/非同期の混在を防ぐ |
| Nullable参照型 | .NET 6以降のNullable参照型の有効/無効をproject_info.mdに記載する |
| DI/IoC | DIコンテナの使用方法・ライフタイム(Singleton/Scoped/Transient)の方針を明記する |
| Entity Framework | Code First/Database Firstの方針・マイグレーション管理方法をproject_info.mdに記載する |
mdファイルに記載すべき情報
- .NETバージョン・C#バージョン・対象フレームワーク
- Nullable参照型の有効/無効設定
- DBアクセス方法(Entity Framework/Dapper/ADO.NET)とマイグレーション管理
- 非同期処理の使用方針
- 例外処理パターン・ログ出力方法(Serilog/NLog/Microsoft.Extensions.Logging)
推奨IDE
Visual Studio 2022(C#バックエンド)
VS Code(Razorビュー・フロントエンド)
用途に応じて使い分ける
テストフレームワーク
xUnit + WebApplicationFactory
統合テスト:dotnet test
APIテスト:Postman / REST Client
AI開発ツール活用のポイント
| 場面 | ポイント |
| Controller設計 | MVCかMinimal APIかをproject_info.mdに明記する。ルーティング規則・アクション命名規則を統一する |
| 認証・認可 | JWT/Cookie認証の方針・[Authorize]属性の使い方・ポリシー定義をarchitecture_rules.mdに記載する |
| Razorビュー | TagHelper/HTMLHelper/Blazorコンポーネントの使い分けをproject_info.mdに明記する |
| バリデーション | DataAnnotations/FluentValidationの使い分けをcoding_rules.mdに明記する |
| ミドルウェア | カスタムミドルウェアの配置場所・実装パターンをarchitecture_rules.mdに記載する |
mdファイルに記載すべき情報
- .NETバージョン・ASP.NET Coreバージョン・アーキテクチャパターン(MVC/Razor Pages/Web API)
- 認証方式(JWT/Cookie/Windows認証)と認可ポリシー
- APIレスポンスの共通仕様(成功/エラーの形式)
- バリデーション方法・エラーメッセージの返し方
- ログ出力方法・例外ハンドリングミドルウェアの仕様
API設計のポイント: APIレスポンスの共通仕様(成功時・エラー時のJSON構造)を
docs/official/design/api_response_convention.md に定義しておくと、
Agentが一貫したレスポンス形式でAPIを実装します。
推奨IDE
VS Code
TypeScriptの型情報を活用した補完精度が最も高い。フロントエンド開発で特に有効
テストフレームワーク
Jest / Vitest / Testing Library
npm test または npx vitest
AI開発ツール活用のポイント
| 場面 | ポイント |
| 型定義 | APIレスポンス型・DTO型・コンポーネントProps型をmdファイルに定義しておく。Agentが型安全なコードを生成しやすくなる |
| any禁止 | coding_rules.mdに「anyの使用は原則禁止」と明記する。Agentはanyを使いがちなため制約が重要 |
| コンポーネント設計 | コンポーネントの責務分離方針(Container/Presentational など)をarchitecture_rules.mdに記載する |
| 状態管理 | useState/useReducer/Zustand/Reduxなど使用する状態管理方法をproject_info.mdに明記する |
| API呼び出し | fetch/axios/SWR/React Queryなど使用するHTTPクライアントをproject_info.mdに明記する。エラーハンドリングパターンも記載する |
mdファイルに記載すべき情報
- TypeScriptバージョン・フレームワーク(React/Vue)・バージョン
- tsconfig.jsonの主要設定(strict/target/moduleなど)
- コンポーネント設計方針・ファイル命名規則・ディレクトリ構成
- 状態管理方法・APIクライアントの使い方
- テストの書き方・モックの方法・カバレッジ方針
型定義ファイルの活用: APIレスポンスの型定義をtypes/api.tsなどに集約し、
そのファイルをAgentに参照させることで、フロントエンドとバックエンドの型整合が取れた実装が生成されます。
バックエンドがASP.NET CoreやJavaの場合も、APIレスポンスのmdファイルから型定義を生成させることができます。
言語共通:project_info.md テンプレート
どの言語でも必ず記載すべき項目です。このファイルがAgentの最初の参照先になります。
# プロジェクト情報
## プロジェクト概要
- プロジェクト名:
- 目的・概要:
- 対象ユーザー:
## 技術スタック
- 言語:(例:Java 17 / C# 12 / TypeScript 5.x)
- フレームワーク:(例:Spring Boot 3.x / ASP.NET Core 8 / React 18)
- DBアクセス:(例:Doma2 / Entity Framework Core / Dapper)
- DB:(例:Oracle 19c / SQL Server 2019 / PostgreSQL 15)
- ビルドツール:(例:Gradle / Maven / npm / dotnet CLI)
- テストフレームワーク:(例:JUnit5 / xUnit / Jest)
## ディレクトリ構成
(主要なディレクトリと役割を記載)
## 命名規則
- クラス名:
- メソッド名:
- 変数名:
- ファイル名:
## 禁止事項
- (例:anyの使用禁止 / 直接DBアクセス禁止 / ビジネスロジックをUI層に書くことを禁止)
## 注意事項
- (プロジェクト固有の制約・注意点)