micronaut
Micronautフレームワークを活用した開発において、コンパイル時依存性注入・GraalVMネイティブビルド・クラウドネイティブなマイクロサービス構築に関する専門的なガイダンスを提供します。
description の原文を見る
Expert guidance for Micronaut framework development with compile-time dependency injection, GraalVM native builds, and cloud-native microservices
SKILL.md 本文
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以降の機能を使用する(例: レコード、シールドクラス、パターンマッチング)
- 依存性管理に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)を使用する
- テスト容易性と不変性を向上させるためにコンストラクタ注入を優先する
- 複雑なビーン作成に@Factoryを活用する
- 条件付きビーンロードには@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による適切な入力検証を実装する
ロギングとモニタリング
- 構造化ロギングにSLF4JとLogbackを使用する
- ヘルスチェックとメトリクスのために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を実装する
- 適切なエンティティリレーションシップとカスケードを使用する
- FlyweayまたはLiquibaseによるデータベースマイグレーションを実装する
ビルドとデプロイメント
- Micronautプラグイン付きのMavenまたはGradleを使用する
- 最適化されたコンテナイメージのためにマルチステージDockerビルドを設定する
- ネイティブイメージビルドのためにMicronautのGraalVMサポートを使用する
- 異なるデプロイメントターゲットに対して適切なプロファイルと環境変数を採用する
- Micronautのクラウド統合(AWS、GCP、Azure)を活用する
一般的なベストプラクティス
- RESTful API設計原則に従う
- マイクロサービスアーキテクチャに向けたMicronautを活用して、高速なスタートアップと最小限のメモリを実現する
- 効率的なリソース使用のための非同期およびリアクティブ処理を実装する
- 高い凝集度と低い結合度のためにSOLID原則を遵守する
- クラウドネイティブデプロイメント(Kubernetes、サーバーレス)向けに設計する
- Micronautのサービスディスカバリーと分散設定機能を使用する
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。