Communityライティング&編集github.com

Betreazen/java-knowledge

Java と JVM に関する知識ベースとワークフロー — ライブラリ、バックエンド(Spring Boot、Quarkus、Micronaut)、JDBC/JPA、Kafka、CLI、JavaFX、Spark、ML/LLM アプリ、ゲーム(libGDX、LWJGL)、Minecraft の Mod/プラグイン(Fabric、NeoForge、Paper、Mixin)、組み込みなど、あらゆるドメインに対応。

java-knowledge とは?

このスキルは、Java 開発者がコードの記述、レビュー、最適化を行うための包括的な知識ベースとワークフローを提供します。JUnit 6 や JMH などの最新バージョン情報(2026年11月時点)を含み、パフォーマンスチューニング、テスト、アーキテクチャ、並行処理、Minecraft の Mod 開発など、あらゆるトピックをカバーします。主に Claude Code などの AI エージェントで使用することを想定しており、開発者はパイプライン(pipeline.md)に従うことで、計画からベンチマーク、レビューまでの一貫したプロセスを実行できます。また、各リファレンスは症状から適切な診断手法を見つけられるよう設計されており、コードの品質とパフォーマンスを効率的に向上させることができます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Betreazen/java-knowledge-skill/tree/HEAD/java-knowledge

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Java: 知識ベースとパイプライン

このスキルは、あらゆるドメインにおける Java コードの記述、レビュー、高速化を支援します。内部には以下の3つの要素があります。

  1. 知識ベース。 書籍、記事、講演、ドキュメント、JEP、コードベース、パターンをカテゴリ別にまとめています。各ソースにはリンク、著者、年、および読むべき理由が記載されています。
  2. ツールチェーン。 インストールすべき JDK、ビルドツール、およびアナライザ、実行すべきコマンドとその順序。pom.xml、Gradle、CI のテンプレートが収集され、検証されています。
  3. パイプライン。 作業の順序:コードより先にテスト、品質チェック、JMH ベンチマーク、レビュー、知識ベースでの解決策の検索、再測定。

知識の状態は 2026年11月時点:JDK 27(2026年9月)が最新リリース、JDK 25 が現在の LTS、JDK 21 と 17 が以前の LTS、JDK 28 は 2027年3月リリース予定。Maven 3.9.16 および 3.10.0(Maven 4 はまだ RC)、Gradle 9.9、JUnit 6.1、Spring Boot 4.1、Quarkus 3.40、JMH 1.37。Minecraft:26.3 が最新リリース(2026年9月)、26.4 はスナップショット中;26.1 以降、ゲームは難読化されておらず、Java 25 が必要です。

参照先

タスクファイル
新機能、リファクタリング、最適化:作業の順序references/pipeline.md
JDK のディストリビューションとバージョン、インストール、Maven と Gradle、プラグイン、BOM、アノテーションプロセッサ、javac -Xlint、Error Prone、NullAway、SpotBugs、PMD、Spotless、OpenRewrite、依存関係のセキュリティ、JDK ツール、CI、テンプレートreferences/toolchain.md
JUnit 6、AssertJ、Mockito、Testcontainers、Spring Boot スライス、property-based テストとコントラクトテスト、JaCoCo、PIT、不安定なテストreferences/testing.md
コードが遅い、またはメモリを消費する:症状別のテクニック、JMH、JFR、JIT、GC、起動とウォームアップreferences/performance.md — まず「症状 → テクニック → ソース」の表から始めてください
Java 17–28 の言語機能(JEP 別)、イディオム、null と Optional、例外、パターンとアンチパターン、セキュリティ、レビューチェックリストreferences/idioms-patterns.md
プロジェクト構造、マルチモジュールビルド、パッケージと JPMS、レイヤーとヘキサゴナルアーキテクチャ、DDD、ArchUnit、DI、API の進化、リファレンスコードベースreferences/architecture.md
メモリモデル、executors、CompletableFuture、ロック、仮想スレッド、構造化並行性、スコープ値、リアクティブライブラリ、FFM API、JNI、Unsafe、Vector APIreferences/concurrency-native.md
サーバードメイン:Spring Boot、Quarkus、Micronaut、Helidon、REST と gRPC、JDBC、JPA と Hibernate、マイグレーション、Kafka、可観測性、セキュリティ、コンテナと Kubernetesreferences/domains-server.md
その他のドメイン:ライブラリの公開、CLI と TUI、デスクトップ、データ、ML と LLM アプリケーション、ゲーム、組み込み、WebAssembly、相互運用、スクリプトreferences/domains-client.md
読むべきもの、ブログ、講演、ポッドキャスト、コース、日本語リソース、レベル別学習ロードマップreferences/books.md。書籍に関する一般的な質問は、セクション「厳選20冊」と「レベル別リーディングロードマップ」から始めてください。テーマ別のセクションは目次から開いてください。ファイルは大きいので、全体は読まないでください

Minecraft ブランチ(Java Edition:Mod とサーバープラグイン、Minecraft 26.x および最新の 1.21.x):

タスクファイル
Mod を始める:ローダーの選択(Fabric、NeoForge、Forge、Quilt)、ゲームと Java のバージョン、Loom と ModDevGradle、マルチローダーとマルチバージョン、Modrinth と CurseForge への公開、Modpack ビルド、CI、検証済みテンプレートreferences/minecraft-modding.md
Mod コード:サイドとスレッド、レジストリ、データコンポーネント、ブロック、エンティティ、データ生成、コーデック、ネットワーク、イベント、Mixin、Access Wideners と Transformers、レンダリング、設定、ワールド生成、新しいバージョンへの移行、レビューチェックリストreferences/minecraft-mod-api.md — 26.x で壊れたものは、セクション「26.x で壊れたもの」を参照
ラグ、TPS と MSPT、FPS、メモリ、起動の遅さ;spark と JFR;ワールドベンチマーク /tick sprint;GameTest とユニットテスト;クラッシュレポートと Mod 競合の分析references/minecraft-performance-testing.md — まず「症状 → テクニック → ソース」の表から始めてください
サーバー:データパック、プラグイン、または Mod;Paper、Folia、Velocity、Spigot、Sponge、Minestom;Polymer;Geyser と ViaVersion;プラグインエンジニアリングとテンプレートreferences/minecraft-server-plugins.md
ドキュメントとその鮮度、古いチュートリアルの読み方、コース、タイプ別のリファレンス Mod、コミュニティ、学習ロードマップreferences/minecraft-resources.md

各リファレンスは目次から始まります。ファイル全体ではなく、必要なセクションだけを読んでください。

よくある質問と回答があるセクション:

質問セクション
JDK 23+ に移行した後、生成クラス(Lombok、MapStruct、JMH)が消え、ビルドは通る;その他のわかりにくいビルド障害toolchain.md → 「落とし穴:まとめ」
マージ前にプロジェクトをチェックするコマンドtoolchain.md → 「最小限の品質チェック」
プロファイルやベンチマークで何が見えているか、どう対処するかperformance.md → 「症状 → テクニック → ソース」
嘘をつかないベンチマークの書き方performance.md → 「ベンチマーク:JMH」
Windows、Linux、macOS でのプロファイリング方法performance.md → 「プロファイリング」
その言語機能を現在の JDK バージョンで使用できるかidioms-patterns.md → 「言語バージョン:Java 17–28」
サービスを仮想スレッドに移行すべきか、何を確認すべきかconcurrency-native.md → 「仮想スレッド」、Spring Boot 4 の場合は domains-server.md → 「フレームワークとランタイム」
負荷に応じた並行処理モデルの選択concurrency-native.md → 「負荷に応じたツールの選択」
Spring Boot 4、Jackson 3、Hibernate 7 で変更された点、削除された点domains-server.md → 「2026年11月時点のバージョン」
遅いエンドポイント、N+1、コネクションプールdomains-server.md → 「サーバーパフォーマンス:症状」
プロジェクトをモジュールに分割し、境界を固定する方法architecture.md → 「デフォルトの簡単なルール」
その書籍や出版は存在するかbooks.md → 「出版されたもの、早期アクセス中のもの、存在しないもの」
Minecraft:Mod を始めるには、GameTest と CI 付きのプロジェクトminecraft-modding.md → 「テンプレート」、ローダーの選択は「デフォルトスタック」
Minecraft:古いチュートリアルや Mod が 26.x でビルドできない(modImplementation、remapJar、ResourceLocation、Yarn)minecraft-modding.md → 「古いチュートリアルの誤り」、minecraft-mod-api.md → 「26.x で壊れたもの」
Minecraft:サーバーが遅い(MSPT、TPS)、原因を見つけて修正が効果的だったことを証明する方法minecraft-performance-testing.md → 「症状 → テクニック → ソース」、作業の順序は pipeline.md → 「Minecraft Mod とプラグイン」
Minecraft:データパック、プラグイン、Mod の選択;ゼロからの Paper プラグインminecraft-server-plugins.md → 「データパック、プラグイン、Mod の選択」、「テンプレート」

スクリプト scripts/BenchCompare.java は、JMH の「改善前」と「改善後」の実行を JSON で比較し、実行間のノイズを考慮して、後退があった場合に終了コード 1 を返します。ビルド不要で実行:java BenchCompare.java <before> <after>(JDK 17+ が必要)。パイプラインのステップ 11 で使用します。

Minecraft 用にさらに2つのスクリプトがあります:

  • scripts/tick_sprint_bench.sh — サーバー全体を /tick sprint コマンドでベンチマークするスクリプト。結果は JMH JSON 形式で出力されるため、同じ BenchCompare.java で比較できます。
  • scripts/EmptyStructure.java — GameTest 用の空の .nbt 構造。NeoForge で必要です(NeoForge には空の構造が含まれていないため)。

スクリプトは、この SKILL.md と同じディレクトリにある scripts/ フォルダに格納されています。すべてのプロジェクトにインストールする場合のパスは ~/.claude/skills/java-knowledge/scripts/、プロジェクトにインストールする場合は .claude/skills/java-knowledge/scripts/ です。リファレンス内のコマンドでは、このパスを使用してください。

作業の進め方

1メソッドより大きいタスクの場合は、パイプラインに従ってください:

  1. ヒアリング。
  2. 計画と仕様。
  3. サブタスクへの分割。
  4. コードより先にテスト。
  5. Worktree への分離。
  6. ベンチマーク。
  7. ベースライン測定とプロファイル。
  8. レビュー。
  9. 知識ベースでの解決策の検索。
  10. 最適化。
  11. 再測定。

小さな修正の場合は、同じファイルの簡易モードで十分です:テスト、コード、チェック、レビュー。

作業が完了したと宣言する前に、最小限のチェックを実行し、その出力を表示してください:

./mvnw -B -ntp verify                 # コンパイル(-Xlint -Werror、Error Prone と NullAway 付き)、テスト、Spotless、JaCoCo 閾値
./mvnw -B -ntp dependency:analyze
osv-scanner scan source -r .

Gradle の場合:./gradlew build、./gradlew buildHealth、osv-scanner scan source -r .。アナライザと閾値はビルドにバインドされている必要があります — toolchain.mdにテンプレートがあります。プロジェクトにこれらがない場合は、既存のものを実行し、不足しているチェックを指摘してください。ツールがインストールされていない場合は、toolchain.md からインストールコマンドを提案し、黙ってステップをスキップしないでください。

最適化時:

  • まず測定、次に修正。ベースラインなしにコードが高速になったとは言えません。
  • ループ内の System.nanoTime() ではなく、JMH で測定してください。JIT は未使用の処理を削除します。ローカル測定では、結果が破棄される計算は実際の14倍安く見えました。
  • 「改善前」と「改善後」でそれぞれ5回の実行を、個別の JVM 起動で行い、順序は入れ替えて(ABBA)ください。同じ jar の起動間でも12~22%のばらつきがあります。
  • 常に -prof gc を追加し、gc.alloc.rate.norm(1操作あたりのバイト数)を確認してください。このメトリクスはほとんどノイズがありません。
  • 1台のマシンで同時に実行する JMH は1つだけにし、測定中はマシンに他の作業をさせないでください。
  • performance.md で症状に合ったテクニックを探し、修正箇所の近くにソースを明記してください。
  • ベンチマークが有意な改善を示し、テストがすべてパスした場合にのみ、修正を採用してください。

レビュー時には、以下のチェックリストを使用してください:

知識ベースの使用ルール

  • ソースを明記してください。 パターンや最適化を推奨する場合は、リファレンスからのリンクを提示してください。そうすることで、ユーザーはアドバイスを確認でき、解決策がでたらめに見えなくなります。
  • メモを考慮してください。 [非推奨] は、その素材に代替があり、それが近くに示されていることを意味します。[未検証] は、その主張が単一の二次ソースからのものであり、それに基づいて解決策を構築する前に再検証する必要があることを意味します。
  • バージョンを確認してください。 バージョンは 2026年11月時点のものです。2025~2026年には、破壊的変更を伴う多くのメジャーバージョンがリリースされました:Spring Boot 4 と Spring Framework 7(名前が変更されたスターター、削除された API)、Jackson 3(パッケージ tools.jackson)、Hibernate 7、JUnit 6、Testcontainers 2(新しいアーティファクトとパッケージ)、google-java-format 2。OSSRH を介した公開は 2025年6月30日で終了しました。重要な決定の前には、Maven Central、ドキュメント、リリースノートを確認してください。
  • ターゲット Java バージョンを考慮してください。 maven.compiler.release や Gradle の toolchain を確認してから、

...(翻訳対象のため省略)

関連スキル