Java初心者がエンタープライズJava業務をこなすために読んだ本たち
私はJava言語は前々からある程度触っており、基本的な文法やデザインパターンなどは理解していましたが、今回業務で初めてサーバサイドJavaを扱うことになり、そのときに読んだ本についてまとめました。
Javaでの簡単なプログラミングはできるレベル、つまりよくある「Java入門」のような本だとオブジェクト思考を理解し、Eclipseなどでちょっとした処理を書いて実行、画面もせいぜいServletとJSPでJDBCデータベース接続してCRUDを実現、というところまでがほとんどだと思います。私も今まではそのレベルでした。
しかし、実際に業務アプリケーションを作るとなると、やはりそのレベルでは現場では力不足となるため、そのギャップを埋めるためには色々勉強が必要です。今回はそんな、Java入門書はクリアした後に、Javaの現場で業務をこなせるレベルに到達する目的で読んだ書籍をまとめました。
まずはJavaのことをもっと知るために
Javaエンジニア養成読本 [現場で役立つ最新知識、満載!] (Software Design plus)
- 作者: きしだなおき,のざきひろふみ,吉田真也,菊田洋一,渡辺修司,伊賀敏樹
- 出版社/メーカー: 技術評論社
- 発売日: 2014/11/11
- メディア: 大型本
- この商品を含むブログ (6件) を見る
- 作者: きしだなおき,のざきひろふみ,吉田真也,菊田洋一,渡辺修司,伊賀敏樹
- 出版社/メーカー: 技術評論社
- 発売日: 2014/12/11
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
まずJava全体のことをざっくり知ろうと思い、「Javaエンジニア養成読本」を手にとりました。比較的新しい本なので、この本が出た後の時期にエンタープライズJavaに入門できてラッキーだったと思います。
「Javaエンジニア養成読本」は、Javaの歴史や最新の情報を簡潔にまとめています。また、Java SEとJava EEなどの各種エディションの違いやバージョンの変遷、JVMとは?といった話など、Javaの文法メインの入門書ではなかなか扱われない、だけれども現場では知っていて当然のように扱われるJavaにまつわる話を簡潔にまとめられており、読み物としても楽しめます。あとはJava 8に関する機能紹介やラムダ式などは現場で使うのはまだまだ先でしょうが、最新のJavaの動向を知る上で参考になります。とにかく、これでJava界の全体像を知っておくと、現場で採用しているJavaの各種技術がJava界全体の中のどのような位置づけにある技術なのかがざっくり分かるようになります。
Java EEについて
次はJava EEについて勉強してみようと思い、以下の2冊をさっと読みました。きっとここは各現場で採用するSpringなどのフレームワークがあるならばそれに関する書籍を読む必要があると思います。ただ、今後はJava EEがもっと盛り上がっていく流れだと感じているので、新しいバージョンのJava EEについてもある程度知っておくことは重要だと思います。どのような領域でも入門書は2,3冊くらいをざっくり読むのがいいと個人的に思っているので、ここでは以下の2冊を読んでみました。
「Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava」
Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava (Programmer’s SELECTION)
- 作者: Antonio Goncalves,日本オラクル株式会社,株式会社プロシステムエルオーシー
- 出版社/メーカー: 翔泳社
- 発売日: 2012/03/09
- メディア: 大型本
- 購入: 5人 クリック: 147回
- この商品を含むブログ (28件) を見る
Java EEのバイブル的定番入門書の位置づけで、通称「金魚本」と呼ばれているそうです。新しい分野を勉強するときにこういったバイブル的な書籍は「◯◯本」と界隈で呼ばれていることが多く、そういった書籍は良書が多いです。この本もJava EEの基本を抑える上ではまず最初に読むべき本だと思います。
「わかりやすいJavaEEウェブシステム入門」
- 作者: 川場隆
- 出版社/メーカー: 秀和システム
- 発売日: 2015/05/18
- メディア: Kindle版
- この商品を含むブログを見る
こちらは比較的新しい本で、(当時、おそらく)日本語で読める唯一のJava EE 7の本でした。金魚本よりも初心者向けに執筆されており、IDEの操作手順レベルで導いてくれるので、金魚本よりこちらを先に手を動かしながら勉強しました。
この手の本は全て完璧にやろうとするととても時間がかかるので、JSF画面の簡単なさわりやデータベース接続周りなど、要所要所だけ手を動かしながらじっくりと理解し、細かいところはさっと読んで概要だけ理解し、必要なときに本に戻ってこれるようにしておく、程度でさっと2冊を流し読みしました。
Javaに関わるツール群について
Javaのエンタープライズ開発は様々な目的で、いろいろなツールを駆使して開発します。もちろんIDEだけでも開発できますし、レガシーな現場ではなかなか導入が難しかったりもしますが、やはり効率性を考えると、ツールに頼れる部分は積極的に頼っていきたいです。そんな中で読んだ書籍群です。
ビルドツールについて: 「Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築」
Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築
- 作者: 綿引琢磨,須江信洋,林政利,今井勝信
- 出版社/メーカー: 翔泳社
- 発売日: 2014/11/07
- メディア: Kindle版
- この商品を含むブログ (2件) を見る
Java開発は一人で自分のPCだけでやっているときと複数人で業務用アプリを開発しているときには、ビルド・デプロイの観点が大きく違います。実際にビルドは開発者が意識せずに他の誰かがやってくれているかもしれませんが、Javaのビルドを理解することは開発者にとっても重要だと感が増す。私はantもmavenも名前しか知らなかったので、この辺のビルドツール界隈の概要をざっくり掴みたかったのですが、antやmavenそれぞれの専門書は、それぞれの機能に高度にフォーカスされすぎていて不向きだと感じました。調べていると、gradleというモダンなビルドツールがあるようなので、この本を読んでみました。gradleはantやmavenの欠点を補った後継として開発されているので、antやmavenの問題点とgradleにおける解決方法を比較しながら読むことができたので、たとえ現場がantやmavenしか使っていなくても読む価値がある本だと思いました。
Javaを補完する「プログラミング言語GROOVY」
- 作者: 関谷和愛,上原潤二,須江信洋,中野靖治
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/06
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 392回
- この商品を含むブログ (155件) を見る
groovyはgradleを知る中で知った言語なのですが、Javaと相性の良い、Javaが動いている現場ではどこでも使えるスクリプト言語です。プロダクションコードには含めない、プロジェクト内でのちょっとしたツールを動かすにはgroovyはJavaの現場ととても相性がよいです。Rubyのように簡潔で最低限のコーディングで動くものが作れるので、設計書からソースコードを自動生成するツールを作ったり、テスト時のスタブクラスなどはgroovyでぱぱっと作ったりしました。
その他のツール
それ以外にもプロジェクト固有のツールがあればそれらの使い方も学ぶ必要があります。現場で使うための最低限の使い方を学ぶだけならば一部の数機能、数コマンドだけ知っていれば十分なのですが、ちゃんと1冊の全体像が分かる書籍でひと通り勉強しておくと、いろいろ応用が聞きますし、現場でもよりよい運用方法を提案できたりするので有用です。
例えば、ソースコード管理にSubversionやgitを使っていると、それらの習得は必須です。
- 作者: 濱野純(Junio C Hamano)
- 出版社/メーカー: 秀和システム
- 発売日: 2009/09/19
- メディア: 単行本
- 購入: 31人 クリック: 736回
- この商品を含むブログ (158件) を見る
あとは単体テストでJUnit、CI関連でJenkinsを使っていたので、以下もざっと読みました。
JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)
- 作者: 渡辺修司
- 出版社/メーカー: 技術評論社
- 発売日: 2012/11/21
- メディア: 単行本(ソフトカバー)
- 購入: 14人 クリック: 273回
- この商品を含むブログ (68件) を見る
改訂新版Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
- 作者: 佐藤聖規,和田貴久,河村雅人,米沢弘樹,山岸啓,川口耕介
- 出版社/メーカー: 技術評論社
- 発売日: 2015/06/10
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
勉強会など
あとは本だけでなく、勉強会にも行ったりしました。JJUGやJava Tokyo Dayなど、Javaに関するイベントにも参加しておくと、これらの書籍に書かれている内容がどの程度現場感のあるものなのかや、これまで思いつきもしないツールの存在についてしれたりと、とても有意義です。また、セッションの話の内容が理解できること自体、ちょっとした中級者の仲間入りができた気分にもなれます。
まとめ
とりあえず上記の書籍をひと通り目を通しておけば、初めてのJavaの現場でも一般的なJavaの話題でついていけなくなることはほとんどなくなりました。あとは現場固有の開発スタイルや、開発要件に応じて必要な技術をつど調べながら勉強していけば、Java入門者でもJavaの現場でちゃんと一人前の働きができるのではないでしょうか。
Java入門書をクリアしたレベルの人たちに、Java現場で活躍する上で参考になれば幸いです。
以上です。