msksgm’s blog

msksgm’s blog

Webエンジニアです。日々の勉強記録、技術書感想、美術観賞感想を投稿します。

「Kotlin イン・アクション」感想

概要

Kotlin イン・アクション」を読みました。 「前提」「読了時間」「感想」「次に関連で勉強すること」「まとめ」を記述します。

前提

目的

主な理由は以下です。

  • Kotlin をメインの言語にしたいと考えていたため、Kotlin の書籍を探していた
  • 「Kotlin イン・アクション」は Kotlin の製作者が書いたバイブル的な書籍だと考えたため読むことにした

前提知識

  • Java は会社の研修で 2 ヶ月ほど触った(配属されてからは触っていない)
  • 読み始めた時点では Kotlin を触り始めて 2 ヶ月ほどだった
  • 書籍を読みながら、Kotlin の造形が深い知り合いと RealWorld を一緒に作成することで、知見を深めていった

読了時間

読み始めてから読み終わるまで、2 ヶ月ぐらいかかりました。 しかし、全く読めていない時期もあったので、平均すると 1.5h/日 * 30 日で 45 時間ほど時間を要したと考えています。

感想

まちがいなく、この 1 冊で Kotlin の本質的なことを学べると思いました。 この本の読了前後で、Kotlin に対する理解が段違いに変化したと考えています。 翻訳者の方々は現在も Kotlin コミュニティで名前をよく聞く有名人たちで、本書に限らず感謝の気持ちが止まりません。 Kotlin を触っている人、これから触りたい人には是非読んでほしいと思いました。 書籍の良かった点は以下です。

  • バイブルなので、Kotlin の本質的なことを学べる本
  • サンプルコードを用いた学習が容易
  • 日本語訳がわかりやすい

前半部分は Kotlin との基本的な文法を学びます。 その内容は、関数、クラス、オブジェクトから始まるので、初心者にもおすすめです。 加えて、単純に「こうだからこう」ではなく、「この処理は内部的にこうなっていてこうなる」といった説明のため、言語のなんとなく使っていた部分を理解しながら読み進められます。 Java の知見があれば、Java に変換されたときの挙動も理解できます。逆に言えば、Java の知識が最低限ないと読み進めづらい可能性があります。
後半部分は難易度が高くなります。自分も最後の 2 章は読み飛ばしてしまいました。 しかし、高階関数ジェネリクスを応用した使い方は、仕様が厚い言語を使う際の醍醐味ですし、OSS も読みやすくなるので一読をおすすめします。

気になった点は 2 点です。

1 つ目は 2017 年出版ということから、Kotlin のバージョンが古くなっていることです。 大きな問題はありませんでした。しかし、sealed の説明で「class には使えるが、interface には使えない」といった現在のバージョンとは異なる説明があります。

2 つ目は本書とは関係ない部分です。それは絶版になってしまっていることです。 おそらく原因は、日本における使用者の人口が少ないため、あまり売れなかったのではないかと考えています。 自分は Amazon の中古で定価以上の値段を払って購入しました。
原著の第 2 版が来年の春に発売されます。現在(2022 年 10 月現在)は MEAP で 5 章まで公開されています。 目次を拝見したところ、構成自体に大きな変更はないので、英語に抵抗がなければ、購入をおすすめします。

www.manning.com

次に関連で勉強すること

Kotlin の知見を深めるために、以下を実践します。

  • RealWorld の実装
  • 技術記事の投稿

また、書籍では以下を読みます。

  • Functional Programming in Kotlin
  • Kotlin Design Patterns and Best Practices
  • Kotlin in Action, Second Edition

本書籍を踏まえて、Kotlin を理解するには Java の知見も必要なので、将来的には Java の勉強もします。

まとめ

Kotlin の本質的な部分を学ぶには最高の一冊でした。 Kotlin に対して造形を深めるの、最初の一冊だと思いました。 絶版になっているのが、非常に残念です。 原著の第 2 版がでるので、3 ヶ月後ぐらいをめどに読みたいと考えています。