ISBN 9784297111991
みんなのJava OpenJDKから始まる大変革期!
概要
OpenJDK移行後のJavaエコシステム全体を現場視点で把握する
想定読者
Java 8以前の経験を持ち、Java 9以降のJDKディストリビューション選択・Jakarta EE・GraalVM・軽量フレームワーク移行を業務で判断する必要があるエンジニア
こんな人には向いていない
- Javaをこれから学び始める初学者。本書は言語入門を扱わず、Java 9以降の変化の追跡を主眼とする
- 特定のフレームワーク(Spring Bootなど)の実装詳細を深堀りしたい読者。各フレームワークの概要紹介が主であり実装チュートリアルではない
- Java 11以降をすでに本番運用し、GraalVMやQuarkusの内部まで熟知しているシニアエンジニア。2020年時点の概観が出発点のため情報の鮮度に注意が必要
読了後にできるようになること
- Java 9からJava 14までの言語仕様・JVM変更の要点を体系的に整理できる
- OracleのJDK有償化移行後に乱立したJDKディストリビューション(Corretto・Zulu・Liberica等)の選定基準を判断できる
- Java EEからJakarta EEへの移行経緯と現在の仕様体系を理解できる
- MicroProfileを使ったマイクロサービス開発のアーキテクチャ概要を把握できる
- GraalVMのネイティブイメージ生成の仕組みと適用判断の基準を説明できる
- Micronaut・Quarkus・Helidonの特徴差異からプロジェクト要件に合ったフレームワークを選べる
本書のキー概念(章解説)
- 第 1 章 Java 9からJava 14までに起こった変化から見る これからのJava — 言語仕様とJVM変更の概観。Java 8からの移行判断に必要な差分知識がここに集中している
- 第 2 章 JDKに関する疑問と不安解消! JDKディストリビューション徹底解説 — 実務でもっとも即効性が高い章。ディストリビューション選択で迷っている場合はここから読み始めてよい
- 第 3 章 Java EEからJakarta EEへ 新しいEnterprise Java — Jakarta EE 8の機能一覧と移行の背景を整理。既存Java EE資産を持つチームの判断材料になる
- 第 4 章 MicroProfileが拓く Javaのマイクロサービス — MicroProfileによるマイクロサービス開発の概要。Jakarta EEと対比して読むと位置付けが明確になる
- 第 5 章 ネイティブイメージ生成で注目! Javaも他言語も高パフォーマンスGraalVM — GraalVMの適用事例を含む。コンテナ起動時間短縮を課題にしているチームへの参照章
- 第 6 章 マイクロサービス、クラウド、コンテナ対応 [新世代]軽量フレームワーク入門 — Micronaut・Quarkus・Helidonの比較。フレームワーク選定前に概観を把握する用途に向く
ハイライト
- JDKディストリビューション時代の到来。OpenJDKとJDKディストリビューションの歴史、最新JDKディストリビューション大全、JDKディストリビューションの選び方、OpenJDKへの接し方(2020年当時もっとも現場で混乱を招いていたJDK選択問題を章丸ごと扱っている点が本書の中核的価値)
- あらゆる言語のコードを高速に実行可能なGraalVMが登場し、クラウド・コンテナ・マイクロサービスを前提とした軽量フレームワークも続々と登場しています(Java生態系の変化の方向性を一文で示す。フレームワーク選定の文脈理解に直結する)
外部からの言及
- JDKディストリビューション選定に混乱していた読者が、第2章の解説で整理できたという評価が複数の記事で言及される。著者の一人 yamadamn による公式タイアップ記事が165 likesを集めており、本書の補助資料として現在も参照されている(qiita)
- 『Javaはみんなで作るものになりました』という本書のテーマを受けて、Java初心者ではなく現場で変化を追う開発者向けと明確に位置付ける書評が書かれている。1章1〜2時間で読め、1日で読了できる構成も評価されている(qiita)
編集メモ
ハッシュタグ #minjava 付きのQiita記事が出版社公認で複数作られており、著者自身の解説記事(165 likes)と書評記事(49 likes)が確認できる。直接ISBN言及は少ないが2020年3月出版時点でのJDK選定・エコシステム整理の参照書として活用されている実績がある
読む前に押さえておきたいこと
- Java 8でのアプリケーション開発経験(基本文法・コレクションAPI・ラムダ式程度)
- Mavenまたはビルドツールによるプロジェクト管理の経験
- Dockerコンテナの基本概念(第6章を読む場合)
学習のコツ
- JDKディストリビューション選択に迷っている場合は第2章から読み始め、その後第1章で言語仕様の変化を確認する順序が即効性が高い
- 第5章(GraalVM)と第6章(軽量フレームワーク)はクラウド移行の検討フェーズに照らし合わせて読むと、選定判断の根拠として活用しやすい
- 2020年出版のため、各フレームワークのバージョン情報は公式ドキュメントと合わせて補完しながら読む必要がある
- 著者陣のQiita記事(#minjavaタグ)が補足資料として公開されており、本書と並行して参照すると理解が深まる
出版社による内容紹介
Javaには、その誕生以来、最大といってもよいほどの変革期が訪れています。JDK(Java Development Kit)がOracleからコミュニティを中心とした開発に移行したことをきっかけに、Java EEもJakarta EEに移行しました。さらにあらゆる言語のコードを高速に実行可能なGraalVMが登場し、クラウド・コンテナ・マイクロサービスを前提とした軽量フレームワークも続々と登場しています。本書では、そのような大きな変化の特徴を捉えて、Javaによる開発・運用をどのように進めていけばよいのか、現場の第一線で活躍しているエンジニアがわかりやすく解説します。Javaによる開発・運用に必須の知識が、満載の1冊です。 【ハッシュタグ】 『#minjava』で検索! 第1章 Java 9からJava 14までに起こった変化から見る これからのJava 1-1 Javaの変化 1-2 開発体制の変更と機能変更の概要 1-3 Java 9から14までの言語仕様や標準ライブラリの変更 1-4 Javaの未来を作るプロジェクトProject Valhalla 1-5 JVMの変更 1-6 ツールの追加・変更 第2章 JDKに関する疑問と不安解消! JDKディストリビューション徹底解説 2-1 JDKディストリビューション時代の到来 2-2 OpenJDKとJDKディストリビューションの歴史 2-3 OpenJDKを開発しているのは誰か 2-4 最新JDKディストリビューション大全 2-5 JDKディストリビューションの選び方 2-6 OpenJDKへの接し方 第3章 Java EEからJakarta EE へ 新しいEnterprise Java 3-1 Jakarta EE Platformの概要 3-2 Java EE/Jakarta EEのアーキテクチャ 3-3 Jakarta EE 8のおもな機能 3-4 Jakarta EEのこれから 第4章 MicroProfileが拓く Javaのマイクロサービス 4-1 MicroProfileとは? 4-2 MicroProfileによるマイクロサービス開発 第5章 ネイティブイメージ生成で注目! Javaも他言語も高パフォーマンスGraalVM 5-1 あらゆる言語を実行できるVM!? 5-2 GraalVMを試してみよう 5-3 GraalVM JITコンパイラとTruffle 5-4 GraalVMの組み込みとネイティブイメージ 5-5 GraalVMの適用事例 5-6 GraalVMが照らすJavaの未来 第6章 マイクロサービス、クラウド、コンテナ対応 [新世代]軽量フレームワーク入門 6-1 軽量フレームワークが続々登場している理由 6-2 軽量で多機能なフルスタックフレームワークMicronaut 6-3 クラウドネイティブな高速フレームワークQuarkus 6-4 Oracleによる軽量・シンプルなフレームワークHelidon
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。