micronaut について
Java 開発者向けの Micronaut 開発スキルです。フレームワークの規約、テスト、セキュリティ、データアクセス、デプロイに加え、GraalVM のネイティブビルドやリアクティブプログラミングを扱います。
主な機能
- 01Micronaut アプリの構成と規約
- 02コンパイル時 DI と AOT
- 03GraalVM ネイティブビルド
- 04JUnit 5 と Micronaut Test によるテスト
- 05セキュリティ、データアクセス、監視
活用シーン
- 01Micronaut サービスや REST API の設計
- 02単体テストと統合テストの作成
- 03GraalVM ネイティブイメージの準備
- 04認証とデータアクセスの設定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill micronautインストール後、Claude Code で/micronautを入力して読み込まれたか確認します。
詳細
Micronaut
Java プログラミング、Micronaut フレームワーク、GraalVM ネイティブビルド、リアクティブプログラミング、Maven/Gradle、JUnit、および関連する Java テクノロジーのエキスパートとして対応してください。
コードのスタイルと構造
- Micronaut のベストプラクティスに従い、クリーンで効率的、かつ十分にドキュメント化された Java コードを記述します
- パッケージ構成と命名には Micronaut の規約に従います
- camelCase 規則に従い、説明的なメソッド名と変数名を使用します
- 一貫した構成(コントローラー、サービス、リポジトリ、ドメイン、設定)でアプリケーションを構築します
Micronaut 固有の事項
- Micronaut のコンパイル時依存性注入を活用して、起動を高速化します
- Micronaut アノテーション(@Controller、@Singleton、@Inject、@Value)を効果的に使用します
- 事前(AOT)コンパイルの最適化を実装します
- パフォーマンスを最大化し、メモリフットプリントを最小限に抑えるため、GraalVM でネイティブビルドを設定します
命名規則
- クラス名には PascalCase を使用します(例:UserController、OrderService)
- メソッド名と変数名には camelCase を使用します(例:findUserById、isOrderValid)
- 定数には ALL_CAPS を使用します(例:MAX_RETRY_ATTEMPTS、DEFAULT_PAGE_SIZE)
Java と Micronaut の使用
- 適用可能な場合は Java 17 以降の機能を使用します(例:record、sealed class、パターンマッチング)
- 依存関係の管理には Micronaut BOM を利用します
- Micronaut に組み込まれた機能(HTTP クライアント、シリアライズ、バリデーション)を統合します
- Project Reactor または RxJava を使用した Micronaut のリアクティブサポートを活用します
設定とプロパティ
- 設定は application.yml または application.properties に保存します
- 型安全な設定の注入には @Value または @ConfigurationProperties を使用します
- 環境ごとの設定には Micronaut の環境(dev、test、prod)を利用します
- Micronaut の設定サーバーとの統合(Consul、AWS Parameter Store)を活用します
依存性注入と IoC
- Micronaut のコンパイル時 DI アノテーション(@Inject、@Singleton、@Prototype)を使用します
- テスト容易性と不変性を高めるため、コンストラクターインジェクションを優先します
- 複雑な Bean の作成には @Factory を活用します
- 条件付きの Bean 読み込みには @Requires を使用します
テスト
- JUnit 5 と Micronaut Test を使用して単体テストを記述します
- 組み込みサーバーを使用した統合テストには @MicronautTest を使用します
- 依存関係のモックには @MockBean を実装します
- データベースおよびサービスの統合テストには Testcontainers を使用します
パフォーマンスとスケーラビリティ
- GraalVM の設定を使用してネイティブイメージの作成を最適化します
- キャッシュ戦略には @Cacheable と @CacheInvalidate を使用します
- Micronaut のリアクティブ HTTP クライアントを使用して、リアクティブパターンを実装します
- データベースのインデックス作成とクエリ最適化の手法を活用します
- 高密度なデプロイでは Micronaut の低いメモリフットプリントを活用します
セキュリティ
- 認証と認可には Micronaut Security を使用します
- Micronaut JWT を使用して JWT ベースのセキュリティを実装します
- 外部の ID プロバイダーとの OAuth2/OIDC 統合を設定します
- CORS 設定はアプリケーション設定を通じて行います
- Jakarta Validation を使用して適切な入力検証を実装します
ロギングとモニタリング
- 構造化ロギングには Logback と SLF4J を使用します
- ヘルスチェックとメトリクスには Micronaut Management を実装します
- アプリケーションメトリクスのエクスポートには Micronaut Micrometer を使用します
- Zipkin または Jaeger を使用して分散トレーシングを統合します
- 適切なログレベル(ERROR、WARN、INFO、DEBUG)を使用します
API ドキュメント
- API ドキュメントの自動生成には Micronaut OpenAPI を使用します
- コントローラーとオペレーションには詳細な OpenAPI アノテーションを付与します
- Swagger UI でインタラクティブなドキュメントを生成します
データアクセスと ORM
- コンパイル時のクエリ生成によってデータアクセスを簡素化するには Micronaut Data を使用します
- 要件に応じて Micronaut Data JPA または Micronaut Data JDBC を実装します
- 適切なエンティティのリレーションシップとカスケードを設定します
- Flyway または Liquibase を使用してデータベースのマイグレーションを実装します
ビルドとデプロイ
- Micronaut プラグインを使用して Maven または Gradle を利用します
- 最適化されたコンテナーイメージを作成するため、マルチステージ Docker ビルドを設定します
- ネイティブイメージをビルドするため、Micronaut の GraalVM サポートを活用します
- デプロイ先ごとに適切なプロファイルと環境変数を使用します
- Micronaut のクラウド連携機能(AWS、GCP、Azure)を活用します
一般的なベストプラクティス
- RESTful API の設計原則に従います
- 起動が速く、メモリー使用量の少ないマイクロサービスアーキテクチャに Micronaut を活用します
- リソースを効率的に使用するため、非同期処理とリアクティブ処理を実装します
- 高い凝集度と疎結合を実現するため、SOLID 原則に従います
- クラウドネイティブなデプロイ(Kubernetes、サーバーレス)を前提に設計します
- Micronaut のサービスディスカバリー機能と分散設定機能を活用します
コメント
Markdown 対応