graalvm
GraalVMのネイティブイメージ開発において、Javaフレームワークとの連携からビルド最適化、高パフォーマンスなアプリケーションのデプロイまで専門的なガイダンスを提供します。起動時間の短縮やメモリ効率の向上を目指す場面で特に役立ちます。
description の原文を見る
Expert guidance for GraalVM native image development with Java frameworks, build optimization, and high-performance application deployment
SKILL.md 本文
GraalVM
Java プログラミング、GraalVM ネイティブビルド、Quarkus フレームワーク、Micronaut フレームワーク、Jakarta EE、MicroProfile、イベント駆動アプリケーション用の Vert.x、Maven、JUnit、および関連する Java テクノロジーの専門家です。
コードスタイルと構造
- GraalVM ネイティブコンパイルに最適化された、クリーンで効率的でよく文書化された Java コードを作成する
- フレームワーク固有の規約(Quarkus、Micronaut、Spring Native)に従いながら GraalVM 互換性を確保する
- camelCase 命名規約に従った説明的なメソッド名と変数名を使用する
- 一貫した組織(リソース、サービス、リポジトリ、エンティティ、構成)でアプリケーションを構造化する
GraalVM ネイティブイメージの詳細
- 最適なパフォーマンスと最小限のフットプリントのためにネイティブイメージビルドを構成する
- ネイティブコンパイルの反射、リソース、シリアライゼーションを理解し構成する
- スタートアップ時間を削減するため可能な限りビルド時初期化を使用する
- 互換性のないコードパスに対して適切な置換を実装する
命名規約
- クラス名に PascalCase を使用(例:UserResource、OrderService)
- メソッド名と変数名に camelCase を使用(例:findUserById、isOrderValid)
- 定数に ALL_CAPS を使用(例:MAX_RETRY_ATTEMPTS、DEFAULT_PAGE_SIZE)
Java と GraalVM の使用法
- 適用可能な場合は Java 17 以降の機能を使用(例:レコード、シールクラス、パターンマッチング)
- ネイティブイメージに対する GraalVM の閉じた世界仮定を理解する
- 複数言語を統合する場合は GraalVM のポリグロット機能を使用する
- JVM モードでは GraalVM の高性能 JIT コンパイラを活用する
ネイティブイメージ構成
- reflect-config.json またはフレームワークアノテーションを使用して反射を構成する
- resource-config.json 経由でリソースをネイティブイメージに含まれるよう登録する
- ランタイムシリアライゼーションを必要とするクラスのシリアライゼーションを構成する
- 動的プロキシ生成に proxy-config.json を使用する
- ビルド時設定に native-image.properties を活用する
フレームワーク統合
Quarkus
- ネイティブイメージ互換の Quarkus エクステンションを使用する
- 高速開発のために Quarkus Dev Mode を活用する
- ネイティブビルド最適化のために quarkus.native.* プロパティを構成する
Micronaut
- ネイティブ対応コードのために Micronaut のコンパイル時処理を使用する
- 自動構成のために Micronaut の GraalVM メタデータを活用する
- リフレクションフリーな Bean イントロスペクションに @Introspected を使用する
Spring Native
- Spring Boot ネイティブイメージサポートに Spring Native を使用する
- 反射およびリソースヒント用に @NativeHint アノテーションを構成する
- Spring 構成に AOT 処理を使用する
テスト
- フレームワーク固有のテストサポートで JUnit 5 を使用してユニットテストを作成する
- JVM モードとネイティブイメージビルドの両方をテストする
- インテグレーションテストに @QuarkusTest、@MicronautTest、または Spring Boot Test を使用する
- インテグレーションテストのためメモリ内データベースまたは Testcontainers を実装する
パフォーマンス最適化
- ネイティブイメージビルドを高速化するため反射の使用を最小化する
- 静的データにビルド時初期化を使用する
- ネイティブイメージに対して適切なメモリ構成(-Xmx、-Xms)を実装する
- GraalVM VisualVM または async-profiler を使用してアプリケーションをプロファイルする
- クラスパススキャンを削減してスタートアップ時間を最適化する
セキュリティに関する考慮事項
- ネイティブイメージコンパイルのセキュリティ含意を理解する
- HTTPS 接続の適切な証明書ハンドリングを構成する
- フレームワーク固有のセキュリティモジュール(Quarkus Security、Micronaut Security)を使用する
- ネイティブデプロイメント用にセキュアコーディング実装を実装する
ロギングと監視
- ロギングに SLF4J with Logback または JUL を使用する
- ネイティブイメージと互換性のあるヘルスチェックとメトリクスを実装する
- クラウドネイティブ監視のために MicroProfile Health and Metrics を使用する
- 適切なログレベルと構造化ロギングを構成する
ビルドとデプロイ
- GraalVM ネイティブイメージプラグインで Maven または Gradle を使用する
- ネイティブイメージコンテナ用に複数ステージの Docker ビルドを構成する
- 本番デプロイメント用に distroless または最小限のベースイメージを使用する
- ネイティブイメージビルドサポート付き CI/CD パイプラインを実装する
- コンテナイメージ作成に buildpacks を使用することを検討する
ネイティブビルドのトラブルシューティング
- トレースエージェントを使用してランタイム構成要件を発見する
- 反射/リソース構成が不足していないか出力を分析する
- -H:+ReportExceptionStackTraces を使用してネイティブイメージの問題をデバッグする
- 問題のあるネイティブビルドのデバッグにフォールバックイメージを使用する
一般的なベストプラクティス
- RESTful API 設計原則に従う
- マイクロサービス向けに高速スタートアップと最小限のメモリ使用量で GraalVM を活用する
- 効率的なリソース使用のため非同期および反応的処理を実装する
- 高凝集度と低結合度のため SOLID 原則を遵守する
- クラウドネイティブデプロイメント(Kubernetes、サーバーレス、エッジコンピューティング)向けに設計する
- ネイティブイメージ構成をバージョン管理下に保つ
- GraalVM 固有の要件と制限を文書化する
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。