mcpField
Q
quarkus

quarkus

github.com/mindrally開発2871.0k 回インストール3 週間前に更新
リポジトリ

quarkus について

Java と Quarkus を扱うコーディングエージェント向けのスキルです。アプリケーション構成、開発、テスト、セキュリティ、デプロイに加え、リアクティブ開発とネイティブイメージ作成も扱います。

主な機能

  1. 01Quarkus のコーディング規約
  2. 02CDI と設定の指針
  3. 03JUnit 5 によるテスト
  4. 04リアクティブ開発とネイティブイメージ
  5. 05セキュリティと可観測性の指針

活用シーン

  1. 01Quarkus アプリケーションの構成
  2. 02Quarkus 統合テストの作成
  3. 03ネイティブイメージビルドの準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mindrally/skills --skill quarkus

インストール後、Claude Code で/quarkusを入力して読み込まれたか確認します。

詳細

Quarkus

Java プログラミング、Quarkus フレームワーク、Jakarta EE、MicroProfile、GraalVM ネイティブビルド、イベント駆動型アプリケーション向けの Vert.x、Maven、JUnit、および関連する Java テクノロジーのエキスパートです。

コードスタイルと構成

  • Quarkus のベストプラクティスに従い、クリーンで効率的な、十分にドキュメント化された Java コードを記述します
  • パッケージ構成を明確にしながら、Jakarta EE と MicroProfile の規約に従います
  • camelCase 規約に従って、内容を具体的に表すメソッド名と変数名を使用します
  • 一貫した構成(リソース、サービス、リポジトリ、エンティティ、設定)でアプリケーションを構成します

Quarkus 固有の事項

  • Quarkus Dev Mode を活用して開発サイクルを短縮します
  • Quarkus のアノテーション(@ApplicationScoped、@Inject、@ConfigProperty)を効果的に使用します
  • Quarkus のエクステンションとベストプラクティスを活用して、ビルド時の最適化を実装します
  • 最適なパフォーマンスを得られるよう、GraalVM でネイティブビルドを設定します

命名規則

  • クラス名には PascalCase を使用します(例:UserResource、OrderService)
  • メソッド名と変数名には camelCase を使用します(例:findUserById、isOrderValid)
  • 定数には ALL_CAPS を使用します(例:MAX_RETRY_ATTEMPTS、DEFAULT_PAGE_SIZE)

Java と Quarkus の使用

  • 該当する場合は、Java 17 以降の機能(例:レコード、sealed クラス、パターンマッチング)を使用します
  • 依存関係の管理には Quarkus BOM を使用します
  • MicroProfile API(Config、Health、Metrics、OpenAPI)を統合します
  • イベント駆動型またはリアクティブなプログラミングパターンには Vert.x を使用します

設定とプロパティ

  • 設定は application.properties または application.yaml に保存します
  • 型安全な設定注入には @ConfigProperty を使用します
  • 環境固有の設定には Quarkus プロファイル(dev、test、prod)を利用します

依存性注入と IoC

  • CDI アノテーション(@Inject、@Named、@Singleton、@ApplicationScoped)を使用します
  • テスト容易性を高めるため、フィールド注入よりもコンストラクター注入またはメソッド注入を優先します
  • コンパイル時の CDI 処理には Quarkus Arc を活用します

テスト

  • ユニットテストには JUnit 5 を使用し、統合テストには @QuarkusTest を使用します
  • REST エンドポイントのテストには rest-assured を使用します
  • 統合テストにはインメモリデータベースまたは Testcontainers を実装します
  • テスト依存関係の管理には @QuarkusTestResource を使用します

パフォーマンスとスケーラビリティ

  • quarkus.native.* プロパティを使用して、ネイティブイメージの作成を最適化します
  • キャッシュ戦略には @CacheResult と @CacheInvalidate を使用します
  • ノンブロッキング I/O には Vert.x または Mutiny でリアクティブパターンを実装します
  • データベースのインデックス作成とクエリ最適化の手法を活用します

セキュリティ

  • 認証と認可には Quarkus Security エクステンション(quarkus-oidc、quarkus-smallrye-jwt)を使用します
  • トークンベースのセキュリティには MicroProfile JWT を統合します
  • CORS 設定とセキュリティヘッダーは Quarkus エクステンションを通じて処理します
  • 適切な入力検証を実装します

ロギングとモニタリング

  • SLF4J または JUL ブリッジングを使用する Quarkus ロギングサブシステムを使用します
  • 準備状態と稼働状態のプローブには MicroProfile Health チェックを実装します
  • アプリケーションメトリクスには MicroProfile Metrics を使用します
  • 分散トレーシングには MicroProfile OpenTracing を統合します
  • 適切なログレベルと構造化ロギングを使用します

API ドキュメント

  • API ドキュメントには Quarkus OpenAPI エクステンション(quarkus-smallrye-openapi)を使用します
  • リソースと操作には詳細な OpenAPI アノテーションを付けます
  • Swagger UI でインタラクティブなドキュメントを生成します

データアクセスと ORM

  • データアクセスを簡素化するため、Panache を使用する Quarkus Hibernate ORM を使用します
  • 適切なエンティティのリレーションシップとカスケードを実装します
  • データベーススキーマのマイグレーションには Flyway または Liquibase を使用します
  • リアクティブなデータベースアクセスには Quarkus Reactive SQL クライアントを活用します

ビルドとデプロイ

  • Quarkus プラグイン(quarkus-maven-plugin)とともに Maven または Gradle を使用します
  • 最適化されたコンテナーイメージを作成できるよう、マルチステージ Docker ビルドを設定します
  • デプロイ先ごとに適切なプロファイルと環境変数を使用します
  • リフレクション設定を行い、GraalVM ネイティブイメージの作成を最適化します

一般的なベストプラクティス

  • RESTful API の設計原則に従います
  • 起動が速く、メモリ使用量を最小限に抑えられるマイクロサービスアーキテクチャには Quarkus を活用します
  • リソースを効率的に使用するため、非同期処理とリアクティブ処理を実装します
  • 凝集度を高め、結合度を低くするため、SOLID 原則に従います
  • クラウドネイティブなデプロイ(Kubernetes、OpenShift)を前提に設計します

コメント