今回もWINGSプロジェクトの書籍レビュアーに応募し、献本してもらったので、書評を書きました。
WINGSプロジェクトの皆様、著者の山田様ありがとうございます。
今回は表題の書籍を献本していただきましたので、こちらのレビューをさせていただきます。
導入/私の前提知識
Javaは新人の頃に5年くらい触ってからは、Scala、TypeScript、Swift、Kotlin、Golang、Dartなどと他の言語を6年ほど実務で触ってきたという経験です。
書評
ここから書籍の具体的な内容の書評に入らせていただきます。
端的にいうと、Java8くらいまで触っていてからの進化の歴史を知らなかったのですが、この書籍でキャッチアップできるほどのボリュームと、忘れていたJavaの文法を思い出すことができました。
以下の項目がより参考になりました。
- 1.3 Javaの歴史
Unicode 10対応、新しいGC、レコード、パターンマッチング、Scoped Values(Incubator)などなど知らない話が多かったです。
- 4.1.6 Switch式
switchが値を返すならもうScalaじゃん
- 4.1.6 Switchによるパターンマッチング
もうScalaじゃん(2度目)
- 9.4 レコード
もうScalaのcase classじゃん(3度目)
- 10章 ラムダ式
- 11.1章 マルチスレッド処理
当時はわかっていなかったが、書籍を見て内容を理解することができました。Javaにも軽量スレッド入ったのか。
他の観点
他にも新人エンジニアが現場入ったらハマるであろうシャローコピーやディープコピーなどが補足でも入っていたりして、新人エンジニアにも勧められる内容だと思いました。
良い点と悪い点
良い点と悪い点を挙げるとすると以下になります。
- 良い点
辞書的に扱える内容でありつつも、章ごとに演習がついていて理解度を上げることができる。
- 悪い点
初学者観点があるとして私が読み落としていなければ、学習のロードマップなどがあれば良いと思いました。理由としては、一定文法がフラットに網羅されているものの、実際で実務で使うにあたってはどの章からおさえるべきで、ここまでの章まで読んだら後はプログラムを書きながら辞書的に使うみたいな幾つくのユースケースが書籍に記載があると良いと思いました。
以上、簡単ではございますが書評のレビューとさせていただきます。