📝

Kiro を使った Java 開発ガイド

に公開

Kiro Java

Kiro は Java プロジェクトに強力な AI アシスト開発機能を提供し、Java コードの作成、デバッグ、メンテナンスをより効率的に行うことができます。

前提条件

Kiro を使った Java 開発を始める前に、以下をインストールしてください:

  • Java Development Kit (JDK):最新の LTS バージョン(JDK 17 以降を推奨)をインストールしてください。無料で本番環境対応の OpenJDK ディストリビューションとして Amazon Corretto をお勧めします。
  • ビルドツール:依存関係管理とビルド自動化のための Maven または Gradle。
  • Git:バージョン管理とコラボレーションのため。

拡張機能

Kiro は Open VSX の拡張機能をサポートしており、Java 開発体験を向上させることができます。インストール可能な便利な拡張機能をご紹介します:

コア拡張機能

  • Extension Pack for Java:Visual Studio Code での Java 開発に人気の拡張機能パック。Java 言語サポート、Java デバッガー、Java テストランナー、Maven for Java、Java プロジェクトマネージャー、IntelliCode が含まれています。

フレームワーク固有の拡張機能

  • Spring Boot Extension Pack:Spring Boot Tools、Spring Initializr Java Support、Spring Boot Dashboard を含む Spring Boot 開発用拡張機能コレクション。

ビルドツール拡張機能

  • Gradle for Java:Gradle プロジェクトの管理、Gradle タスクの実行、Kiro での Gradle ファイル作成体験の向上。
  • Maven for Java:Maven プロジェクトの管理、Maven タスクの実行、Kiro での Maven プロジェクト作成体験の向上。

その他のユーティリティ

  • Markdown Preview Enhanced:ライブプレビュー機能付きの markdown ファイルの表示・編集。

これらの拡張機能は、拡張機能パネルを使用して上記の拡張機能名を検索することで Kiro にインストールできます。

開発環境での作業

Kiro では、チャット機能を活用して新しいプロジェクトをセットアップしたり、既存のプロジェクトで作業したりできます。

プロジェクト設定と構造

Kiro は Java プロジェクトの設定ファイルのセットアップとメンテナンス、Java のベストプラクティスに従ったプロジェクト構成を支援できます:

  • 設定ファイルの初期化:プロジェクトに基づいたデフォルト設定ファイルの初期化を Kiro に依頼。
  • プロジェクト構造の作成:ニーズとベストプラクティスに基づいたプロジェクト構造の作成を Kiro に依頼。
  • 環境設定:Java 開発環境の設定に関するヘルプを取得。

プロンプト例:

"Spring Boot アプリケーション用の新しい Maven プロジェクトを作成して"
"JUnit 5 と Mockito の依存関係を含む Gradle ビルドファイルをセットアップして"
"マルチモジュール Maven プロジェクト構造を設定して"
"私のオペレーティングシステム用に最新の JDK をインストールして設定するのを手伝って"
"適切な階層アーキテクチャを持つ Spring Boot プロジェクトをセットアップして"
"Spring Security と JPA の依存関係を含む pom.xml を作成して"

コード分析とリファクタリング

Kiro は Java コードを分析して問題を特定し、改善提案を行うことができます:

主要機能

  • コード品質分析:潜在的なバグ、パフォーマンス問題、スタイル問題についてコードをレビューするよう Kiro に依頼。
  • リファクタリング支援:メソッドの抽出、変数の名前変更、コードの再構築に関するヘルプを取得。
  • デザインパターンの実装:Java コードで一般的なデザインパターンの実装を Kiro が支援。

プロンプト例:

"このメソッドの潜在的なバグやパフォーマンス問題を分析して"
"このコードをビルダーパターンを使用するようにリファクタリングして"
"この命令型コードを Java Streams を使用するように変換して"
"このビジネスロジックにストラテジーパターンを実装するのを手伝って"
"このクラス構造の改善提案をして"

デバッグ支援

Java コードでエラーが発生した場合:

デバッグ機能

  • エラー説明:分かりにくいエラーメッセージを分かりやすい言葉で Kiro が説明
  • 解決策の提案:一般的なエラーに対する実行可能な修正案を取得
  • ランタイムデバッグ:デバッグ設定のセットアップを Kiro が支援

例:

"コード内のこの NullPointerException を説明して"
"この ConcurrentModificationException のデバッグを手伝って"
"このスタックトレースを分析して修正案を提案して"
"なぜ ClassNotFoundException が発生するの?"
"この OutOfMemoryError を理解するのを手伝って"

ステアリング

ステアリングを使用すると、プロジェクト固有のコンテキストとガイドラインを Kiro に提供できます。Kiro は改良可能なステアリングファイルを生成できます:

コアステアリングファイル

  • 製品概要 (product.md) - 製品の情報、目的、主要機能を含む
  • 技術スタック (tech.md) - 技術、フレームワーク、開発ガイドラインの詳細
  • プロジェクト構造 (structure.md) - プロジェクトの構成方法に関する情報を提供

カスタムステアリングファイルの作成

プロジェクトに新しいステアリングドキュメントを追加するには:

  1. サイドバーの Kiro ビューに移動します。
  2. Agent Steering セクションで、+ ボタンを選択して新しいステアリングファイルを作成します。
  3. 説明的なタイトルでファイル名を入力します。
  4. markdown の規則に従ってカスタムステアリングコンテンツを追加します。

カスタムステアリングファイルは .kiro/steering/ ディレクトリに保存され、対話中に Kiro によって自動的に認識されます。

プロジェクト固有の規約

チームの特定の実践とアーキテクチャの決定を定義するために java-conventions.md ステアリングファイルを作成します:

# Java プロジェクト規約

## アーキテクチャパターン
- 複雑なドメインにはヘキサゴナルアーキテクチャを使用
- 必要に応じて読み書き分離のために CQRS を実装
- ビジネスロジックにドメイン駆動設計の原則を適用

## テスト戦略
- すべてのビジネスロジックに単体テストを記述
- 統合テストには TestContainers を使用
- 最低 80% のコードカバレッジを維持
- AAA パターン(Arrange, Act, Assert)に従う

## エラーハンドリング
- ビジネスロジックエラーにはカスタム例外を使用
- @ControllerAdvice でグローバル例外ハンドラーを実装
- トレーサビリティのために相関 ID でエラーをログ記録
- 一貫したエラーレスポンス形式を返す

## パフォーマンスガイドライン
- データベースアクセスにはコネクションプールを使用
- 頻繁にアクセスされるデータにキャッシュ戦略を実装
- 長時間実行される操作には非同期処理を使用
- データベースクエリを監視・最適化

フレームワーク固有のガイドライン

Spring Boot プロジェクトの場合、spring-boot-patterns.md ステアリングファイルを作成します:

# Spring Boot 開発ガイドライン

## コンポーネント構造
- REST エンドポイントには @RestController を使用
- ビジネスロジックには @Service を使用
- データアクセスには @Repository を使用
- その他の Bean には @Component を使用

## 依存性注入
- フィールド注入よりもコンストラクタ注入を優先
- 注入された依存関係には final フィールドを使用
- 循環依存を避ける

## API 設計
- エンドポイント設計には REST 原則に従う
- 適切な HTTP メソッド(GET、POST、PUT、DELETE)を使用
- 適切な HTTP ステータスコードを返す
- リクエスト/レスポンスオブジェクトには DTO を使用

## 設定管理
- 複雑な設定には @ConfigurationProperties を使用
- application.yml または application.properties を使用して設定を外部化
- 環境固有の設定にはプロファイルを使用

Agent Hooks

Kiro の Agent Hooks は一般的な Java 開発タスクを自動化できます。例えば、以下のようなフックを作成できます:

  • Java ファイルを保存時に JUnit テストを自動生成
  • Checkstyle や SpotBugs でコード品質チェックを実行
  • 古い Maven や Gradle の依存関係をチェック
  • パブリックメソッドの JavaDoc コメントを生成・更新
  • Spring Boot 設定ファイルを検証
  • Google Java Format や類似ツールでコードをフォーマット
  • PMD や FindBugs などの静的解析ツールを実行
  • ビルドファイルのバージョン番号を更新
  • アノテーションから API ドキュメントを生成

MCP サーバー

Kiro のモデルコンテキストプロトコル(MCP)サーバーのサポートにより、専門的なツールと機能を提供して Java 開発体験を向上させます。

Maven MCP サーバー

Maven MCP サーバーを使用すると、Kiro 内で直接 Maven プロジェクトを管理できます:

{
  "mcpServers": {
    "maven": {
      "command": "uvx",
      "args": ["maven-mcp-server@latest"]
    }
  }
}

このサーバーを設定すると、以下が可能になります:

  • Kiro で Maven コマンドを実行
  • ビルド問題の AI 駆動の説明を取得
  • 依存関係とプロジェクト設定を管理
  • 依存関係の競合を分析
  • プロジェクトレポートを生成

使用例:

"プロジェクトの Maven テストを実行して"
"pom.xml に Spring Boot starter の依存関係を追加して"
"依存関係の脆弱性をチェックして"
"プロジェクトの依存関係ツリーを生成して"
"すべての依存関係を最新バージョンに更新して"

その他の便利な MCP サーバー

以下のような拡張機能のために AWS MCP Servers と Awesome MCP Servers コレクションでより多くの MCP サーバーを探索してください:

  • データベース接続と管理
  • クラウドサービス統合
  • コード品質分析
  • パフォーマンス監視

問題のデバッグ

問題が発生した場合、Kiro が診断と修正を支援できます:

デバッグ方法

  • インラインチャットCmd/Ctrl + I を入力してインラインチャットを開きます。

    • 特定のエラーの説明や現在のコードの修正提案を Kiro に依頼。
  • チャットに追加Cmd/Ctrl + L を入力して現在のファイルをチャットに追加します。

    • ファイル全体の潜在的な問題や改善点の分析を Kiro に依頼。
  • クイック修正:エラーや警告にホバーして、クイック修正と Kiro に質問を選択します。

    • Kiro が自動的にコードをチャットに追加してデバッグを開始。

一般的なデバッグシナリオ

コンパイルエラー

"なぜコードがコンパイルされないの?エラーメッセージは..."
"このインポートの競合を解決するのを手伝って"
"このジェネリック型エラーを説明して"

ランタイム問題

"アプリケーションが起動時にクラッシュする、スタックトレースは..."
"このメモリリークのデバッグを手伝って"
"なぜ Spring Boot アプリケーションが起動しないの?"

パフォーマンス問題

"アプリケーションの動作が遅い、最適化を手伝って?"
"このメソッドのパフォーマンスボトルネックを分析して"
"なぜデータベースクエリが遅いのかを理解するのを手伝って"

Java で Kiro を使用するベストプラクティス

効果的なプロンプト

  • 要件と制約について具体的に記述
  • プロジェクト構造と技術についてのコンテキストを提供
  • ヘルプを求める際は関連するコードスニペットを含める
  • Java バージョンとフレームワークのバージョンを指定

コード品質

  • ベストプラクティスについてコードレビューを Kiro に依頼
  • 複雑なアルゴリズムやパターンの説明を求める
  • コードの可読性と保守性の改善提案を取得
  • アーキテクチャの決定を Kiro で検証

学習と開発

  • 新しい Java 機能と API を理解するために Kiro を使用
  • 複雑な概念の説明を求める
  • デザインパターンの実装例を要求
  • テスト戦略とフレームワークについてのヘルプを取得

リソース


このガイドに従うことで、Kiro の AI 駆動機能を活用して Java 開発ワークフローを向上させ、コード品質を改善し、より効率的に問題を解決できるようになります。

Kiro Java

Discussion