『おうちで学べるデータベースのきほん』を読んだ

おうちで学べるデータベースのきほん

DBの基本を学び直そうという試みの一環として、『おうちで学べるデータベースのきほん』を読んだ。

SQL関係で多数の著作のあるミック氏と、MySQL関係の著作やコミュニティ活動で知られる木村明治氏の共著。

かなり初心者向けかなーとは思ってたが、実際読んでみると知らないことも結構あった。例えば、トランザクションの章ではトランザクション分離レベルによって起こるトラブルが解説されているが、MVCC(Multi Version Concurrency Control)という技術によって更新と読み込みはブロックしないようになっている、といった話は初耳だった。

このように、初心者向けの解説をベースとしつつも、少し深いトピックにも触れているのが本書の特徴。

本書だけだとアプリケーション開発には少し足りない印象だが、本書を読んでデータベースの全体感を掴んだ後で、『SQL ゼロから始めるデータベース操作』などでSQLを学んだりして知識を広げていくのが良さそう。

『Amazon Web Services負荷試験入門』を読んだ

Amazon Web Services負荷試験入門―クラウドの性能の引き出し方がわかる (Software Design plusシリーズ)

仕事で負荷試験をやる機会があり、負荷試験のやり方を体系的に学んだことってなかったなー、と思ったので読んでみた。結論から言うと、とても良い本だった。

本書『Amazon Web Services負荷試験入門』は、様々な大手企業のWebシステムの受託開発を手がける株式会社ゆめみのエンジニアが執筆した、AWS環境での負荷試験の入門書。

最も刺さりそうなのはAWS上でPHP製のWebアプリを動かしている開発者だけど、他のクラウドでもサイジングの進め方は同様に適用できるし、負荷試験のやり方はオンプレミスのサーバやVPSを使っている場合にも適用できる。

負荷をかけるツールについてはJMeterLocustを中心にしているが、Apache Benchも使ってるし、考え方はGatlingなど他のツールでも適用できる。

クラウドをテーマにした書籍は「賞味期限」が短いことが多いが、本書はベースとなる負荷試験の考え方を伝えることに注力しているので、いま読んでも古さを感じない。

一方で、説明が端的で理解しきれない部分もあった。負荷試験、クラウドインフラの構築、Webアプリケーションのパフォーマンスチューニングといった経験があった方が、腹落ちしやすいと思う。

特に良かったのは第10章の負荷試験のケーススタディで、きっちり負荷をかけてボトルネックを特定し、負荷試験を繰り返すことでシステムの限界性能を引き出していく流れはとてもエキサイティングだった。

「負荷試験なんて、テストが終わった後で、ローカルPCからabとかJMeterでやれば十分でしょ」と思ってる人には、ぜひ読んでほしい。

『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 現場で役立つ最新ノウハウ!