『Java本格入門』を読んだ

Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

『独習Java』を読んで、Java言語の構文とかは大体分かったけど、ベストプラクティスや定番ライブラリはまだよく分からないなーと思ったので、本書を手に取ってみた。

本書の特徴は、一線級の現役エンジニアが執筆している点。Javaの入門書には専業のライターや大学教員の執筆しているものも少なくないけど、やはり「現場」っぽい情報は現役エンジニアの書いている本には敵わない。

例えば第6章の「例外を極める」などは実践的な知見が詰まっていて参考になる。「検査例外よりも実行時例外を使う」などは、Javaの検査例外という仕組みに不慣れだった自分でも安心して例外を使えるようになる情報だった。

一方で、2017年の出版ということもあり、若干古くなっている情報もある。例えば本書ではソースコードの静的解析ツールとしてFindBugsを紹介しているが、FindBugsは2020年現在、開発がストップしている。直接の後継プロジェクトとしてはSpotBugs、同系統の静的解析ツールとしてはSonarQubeなどが挙げられる。

このように若干補いながら読む必要はあるものの、2020年現在でも十分に読む価値のある書籍だと思う。本書の類書として『Effective Java 第3版』があるが、この本はJava言語自体の解説はほとんどないので、Javaにある程度慣れていないと読むのは難しい。それに対して、『Java本格入門』はJava初心者でも読めて、中級者でも役に立つような本になっている。

『SQL 第2版 ゼロからはじめるデータベース操作』を読んだ

SQL 第2版 ゼロからはじめるデータベース操作

SQL初心者というわけでもないのだけど、Webアプリケーション開発だと基本的なSQLスキルだけでも何とかなってしまうので、そろそろ基礎から勉強しなおしたいなーと思い読んでみた。

『SQL 第2版 ゼロからはじめるデータベース操作』は、データベース関係の著作では定評のあるミック氏の著書。標準SQLにこだわった解説、ウィンドウ関数のような新し目の機能まで盛り込んだ内容の濃さ、それでいて300ページちょっととコンパクトで読みやすい、といった特徴がある。

本書の「標準SQLにこだわった解説」は、様々なDBMSの方言を抑えた上で、「標準SQLではこうだけど、Oracleではこうで、MySQLでは…」といった具合になっていて非常にレベルが高い。直近の業務でOracle向けに書かれたSQLをPostgreSQL向けに移植するという仕事をしているので、参考になる箇所がいくつもあった。

また、ウィンドウ関数についても、帳票出力のサンプルを使ってわかりやすく解説されていた。

SQLの初心者はもちろん、SQLを初歩からやり直したい人にもオススメできる良書。

『速習Kotlin』を読んだ

速習 Kotlin: Javaより簡単!新Android開発言語を今すぐマスター 速習シリーズ

仕事のプロジェクトで、Javaに加えて一部Kotlinも使っているので、Kotlin学習のために読んだ。

KotlinはBetter Javaという趣で、Javaのイマイチなところ(nullの扱いとか、トップレベルに関数を定義できないとか)を改善した上で、Javaの資産も活用できる点に強みがある。

また、IDEベンダーであるIntelliJが開発した言語ということもあり、IntelliJ IDEAで強力にサポートされている点も見逃せない。

『速習Kotlin』はKindle専売の電子書籍で、Javaの知識をある程度持っていることを前提に、手早くKotlinの知識を身につけることができる。

本書を読んで、Kotlinのモダンな言語仕様はいいなあ、Javaも悪くはないけど、コード量多いよなあ、という所感を抱いた(Javaも8以上+ Lombok 込みなら それなりに便利だけど)。

Kotlinはもっと書く機会を増やしていきたいので、次は『みんなのKotlin』で実践的な知識を身につけたいと思う。

みんなのKotlin 現場で役立つ最新ノウハウ!

『独習Java』を読んだ

独習Java 新版

仕事でしばらくJavaのプロジェクトに携わることになったので、読んだ。

『独習Java』は、基本構文や主要なクラスライブラリの解説が載っていて、一通りの基本知識は身に付けることができた。特に良いのがJava 11対応している点(これから読むなら、少なくともJava 8以上に対応している書籍にすべきだと思う)。

一方で、フレームワークやライブラリといった現場っぽい知識は本書では触れられていないので、その辺は別の書籍で補いたい。例えば『Java本格入門』はこの辺のトピックにも触れていそう。

Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

Javaを本格的に学んだのはこれが初めてだったけど、C#やPHPといった今まで使ってきた言語との共通点も多いため、言語の構文については苦労せず学ぶことができた。

独特なのはクラスライブラリあたりからだけど、それについては必要になった時に調べればいいかな、程度の印象。

一方、これから苦労しそうなのはJava言語を取り巻く諸々。

例えば、Javaのランタイムは企業系のもの(Oracle, Redhat, AWS)からコミュニティベースのものまで色々ある。IDEは会社ではIntelliJ IDEAが標準だけど、業界的にはEclipseが根強い。また、ビルドツールもMavenだったりGradleだったり色々。フレームワークも多く、定番のSpringだけでなくPlayもあるし、Micronaut等のマイクロサービス志向フレームワークもあれば、Seasar2やStruts2などで動いてるプロジェクトも現役だったり。

これらにキャッチアップする上で、良さそうな本(『みんなのJava』)も見つけたので、次はこれを読んでみようと思う。

みんなのJava OpenJDKから始まる大変革期!

『基礎から学ぶ サーバーレス開発』を読んだ

基礎から学ぶ サーバーレス開発

仕事でAWS Lambda(+Serverless Framework)を使う機会があり、AWS LambdaやServerless Frameworkについてほとんど知らなかったので、読んでみた。

『基礎から学ぶサーバーレス開発』は、AWS Lambdaを題材にサーバーレスアーキテクチャでのシステム開発方法を学ぶ書籍。

一番のポイントは出版年月日の新しさ(2020年7月)。クラウドは新機能や新サービスの追加が多いので、書籍に載っている情報もどんどん古くなる。そういう意味で、最新の情報がまとまった書籍にちょうどよく巡り合えたのはラッキーだった。

内容についても、サーバーレスの良さだけでなく、気をつけるべき点についても書いてあったり、実際に動かして試せるコードサンプルもあって良書だと思う。

AWS Lambdaで実稼働させるシステムをどう組めばいいのか分からない、という人にはオススメ。