現場で使える Java ライブラリ
ゲンバ デ ツカエル ジャバ ライブラリ
- 著者:
- 竹添直樹 / 島本多可子(タケゾエ, ナオキ / シマモト, タカコ)
- 出版社:
- 翔泳社
- 出版日:
- 2011年07月
- ISBN:
- 9784798123363
- 在庫:
- メーカー取り寄せ
なぜ注目されているか
書籍紹介
Java 開発を効率化する定番 & 実用 73。オープンソースライブラリを徹底解説。
技書の森解説
Java の開発で繰り返し出てくる処理を、オープンソースのライブラリを使って効率よく片付けるための解説書が『現場で使える Java ライブラリ』です (竹添直樹、島本多可子、小津美夕紀、亀井隆司 著、翔泳社、2011 年 7 月刊)。hanmoto に登録された紹介は、Java 開発を効率化する定番と実用のライブラリを集めた本であるとしたうえで、「オープンソースライブラリを徹底解説。」と結んでいます。
用途別 15 項目の目次、基本ライブラリからその他のライブラリまで
hanmoto に掲載された目次は、章番号を示さずに用途別の 15 項目を並べています。最初の「基本ライブラリ」に続いて、ロギング、テンプレートエンジン、Web アプリケーションで利用可能なライブラリ、データベース関連のライブラリ、XML/HTML パーサ、通信、CSV/Excel 入出力、PDF、グラフ生成、オブジェクト変換、テスト、キャッシュ、スクリプトの各ライブラリが続き、最後が「その他のライブラリ」です。目次の項目はどれもライブラリの用途による分類で、言語の文法を扱う項目はありません。hanmoto の目次には個々のライブラリの名前は載っていません。
OSS のライブラリを業務の Java に取り込む技術背景
Java の標準ライブラリは幅広い機能を備えていますが、業務のシステムでは、ファイル形式の変換や帳票の生成のように、標準の API だけで書くと手間のかかる処理が少なくありません。そうした処理を OSS として公開されたライブラリに任せると、自分たちで書いて保守し続けるコードを減らせます。一方で、外部のライブラリは採用した時点から自分たちのシステムの一部になるので、ライセンスの条件、開発が続いているかどうか、他のライブラリが同じ部品の別の版を要求して衝突しないかを確かめる必要があります。Maven や Gradle のようなビルドツールで、使うライブラリとその版を宣言して取り込む 依存管理 は、こうした確認を続けるための土台です。用途の分類ごとに候補を知っておくと、同じ処理を毎回自作するか既存の部品を使うかを判断する時の材料が増えます。
2011 年刊行の Java 環境を前提に読むための注意
刊行は 2011 年 7 月で、取り上げるライブラリの版や API、設定の書き方は刊行時点のものです。刊行から年数がたっているため、実際に採用する前には、各ライブラリの公式の案内で版と開発の状況を確かめる必要があります。Java の文法とクラスの扱い、外部の JAR をプロジェクトに追加してビルドする手順に慣れていることが前提になり、言語そのものを一から学びたい場合は入門書を先に選ぶほうが目的に近づきます。
刊行時期に近い時代に作られた業務システムを保守していて、既存のコードが使っているライブラリの役割を用途別に確かめたい人や、Java でよく使われてきた OSS のライブラリを用途ごとに見渡したい人にとって、目的の処理から候補を引ける本書は、手元に置いて調べ物に使える一冊です。
言及した記事 (2 件)
この本に興味がある方におすすめ
関連する本
関連記事
マンガで学ぶプログラミングはアリなのか
マンガ形式のプログラミング入門書は、ちゃんと学べるのか。マンガ本の強みと弱み、活用法を正直に解説します。
ネットワーク本ガイド - TCP/IP の教科書からプロトコル各論や実務書までの選び方
ネットワークを学ぶ技術書の選び方を 3 段階 (全体像の教科書 → HTTP や DNS のプロトコル各論 → 実務と運用) で整理。マスタリング TCP/IP や図解入門 TCP/IP などの定番書の使い分けと、ネットワーク本の賞味期限の考え方を解説します。
「入門」「実践」「詳解」の次に来る本 - 中級者の壁を越える読書戦略
入門書を卒業した後、何を読めばよいかわからない。中級者が陥る「読書の踊り場」を抜け出すための選書戦略と、レベルを引き上げる本の見つけ方を解説します。
関連用語
リトライパターン
一時的な障害だけを選んで再試行し、間隔を指数的に広げつつ乱数で散らして、回復途中の相手に負荷を集中させない設計パターン
指数バックオフとは - リトライ間隔の設計とジッター付き実装例
指数バックオフはリトライ間隔を 2 倍ずつ増やして障害時の負荷集中を防ぐ戦略。ジッター追加の理由と Go/Python/TypeScript での実装パターンを解説
バルクヘッドパターン
システムをリソース的に独立した区画に分離し、障害の影響範囲を限定する耐障害性パターン
べき等キー
API リクエストの重複実行を防ぐために、クライアントが付与する一意な識別子
Namespace 分離
Kubernetes の Namespace を使ってリソース、ネットワーク、権限を論理的に分離するマルチテナント戦略
インターフェース分離の原則
SOLID の I - クライアントが使わないメソッドへの依存を強制しない原則