『Engineers in VOYAGE』を読んだ

Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち

『Engineers in VOYAGE』は、VOYAGE GROUPの技術者へのインタビュー集。

個人的にVOYAGE GROUPはPHP関係の勉強会でたまに見かける会社で、AJITOは何かの勉強会で遊びに行ったことがある。

本書に主に登場するのはWebエンジニアで、歴史のあるWebサービスをどう保守していくか、新しいサービスをどう立ち上げるか、といった泥臭い部分の話が多く面白かった。

また、事例の点でも広告、ポイントサイト、メディア(ゲーム攻略サイト)など、さまざまな分野があってよかった。

自分はここ最近はずっとEコマースをやっているので、同じWebでも畑が違うと雰囲気が違うということを感じられた。

近年のWebエンジニアには以前にもまして、事業理解や事業貢献といったマインドが求められるようになっている。いち開発者としては事業に共感できる方が成果を出しやすいと思っていて、自分にはEコマースが向いているのかもなーと思う。メディアも興味はあるが、広告はあまり向かなそう(アドブロック常用してるし)。

ある程度経験のあるWebエンジニアなら楽しく読める1冊。

『Web配信の技術』を読んだ

Web配信の技術―HTTPキャッシュ・リバースプロキシ・CDNを活用する

『Web配信の技術』は、HTTPキャッシュ・リバースプロキシ・CDNなど、Webを使ってコンテンツを効率的に配信する際に必要になる技術について解説した書籍。

主にHTTPキャッシュについて解説した最初の3章は、Web開発を行っているソフトウェア開発者なら知っておくべき内容が詰まっている。4章のキャッシュ戦略についても、高トラフィックなWebサイトを開発・運営するなら知っておきたい。

5章はさらにプロキシ・CDNの機能をフル活用するための解説なのだけど、直近で活用できそうにないならざっと目を通すくらいでもいいと思う。

6章のCDNについての解説では、特定のCDNサービスに偏らず、一般的にCDNを使う際の注意事項(例えば、大きなトラフィックを流すときは事前連絡しておく等)が書かれていてよかった。

7章の自作CDNは、安いVPSを並べてCDN化しようという話。実務でこういう構成をすることはなさそうだけど、こういう選択肢もあるということは知っておく価値がある。

約450ページと分量が多く、内容も濃いので、読むのには時間がかかる。最初の3章はWeb開発者全般におすすめできるのだけど、通読すべし、とまでは言いづらい一冊。

『実践JUnit』を読んだ

『実践JUnit』は、JVM環境向けのテスティングフレームワークJUnitの入門書。2021年2月現在、JUnitの最新メジャーバージョンはJUnit 5だが、本書ではJUnit 4を使用している。

古いバージョンを解説しているので、今読む価値がある本なのか疑問だったが、JUnit 4とJUnit 5の違いがそれほど大きくないこともあり、十分参考になる内容だった。

また、JUnitの使い方をなぞるだけでなく、ユニットテストの考え方(Arrange/Act/Assert、スタブとモック、TDDなど)も解説しているので、ユニットテスト初心者にもおすすめできる内容になっている。

JUnit 5の入門書を求めているなら本書は適切な書籍とはいえないが、ユニットテストの入門書としては今でも使える書籍だと思う。

『SQLアンチパターン』を読んだ

SQLアンチパターン

『SQLアンチパターン』、出版当時に買ってつまみ読みだけしていたものを、あらためて通読してみた。

読んでみて思ったこととして、まず章ごとの難易度の差が激しい。9章「ラウンディングエラー」のように、当たり前でしょ、と思うような章もあれば、2章「ナイーブツリー」のように、一読しただけでは理解が難しい章もある。

まずはどういうアンチパターンがあるかを一通り眺めておくと、実務でアンチパターンにハマる確率を下げることができそう。

SQLクエリやデータベース設計だけでなく、アプリケーション設計にも言及があるのがGood。24章はちょっとしたドメイン駆動設計入門にもなっている。

若干内容が古びている部分はあるものの、今でも読む価値のある書籍。

『Elastic Stack実践ガイド[Elasticsearch/Kibana編]』を読んだ

本書は、Elastic Stack(Elasticsearch, Kibana, Beats, Logstash) のうち、主にElasticsearchとKibanaに焦点を当てて解説した書籍。

仕事で検索エンジンのElasticsearchを使うことになったので、Elasticsearchの概要を掴むために読んでみた。

あくまでElasticsearchを利用するアプリケーションプログラマという立ち位置のため、1章〜4章(Elasticsearchの概要と、使い方について)を重点的に読み、5章以降(Elasticsearchの運用や他のElastic Stackソフトウェアとの統合方法について)は流し読み程度。

自分と同じようにElasticsearchをプログラムから利用したい人は、4章まで読んだ上で、利用するプログラミング言語向けのクライアントライブラリのドキュメントを読むのがいいと思う。

例えばJavaの場合、公式クライアント(Java REST Client)が用意されている。利用する言語にクライアントライブラリがない場合でも、ElasticsearchにはREST APIがあるため、HTTPを叩けてJSONが取り扱える言語であればElasticsearchを利用することができる。

本書では、2章でElasticsearch + Kibana環境を構築し、3章と4章でクエリを実行してデータの保存や取得を試すような構成になっている。

実際にElasticsearchにクエリを投げて動かすところまでに100ページくらいかかるので、知りたいところだけをつまみ読みしていくような読み方をした方が良さそう。