woodcockのブログ

ソフトウェアエンジニアをしています。技術メモや買ってよかったものなどを記録していきます。

読んでよかった本2023 : 技術書編

読んでよかった技術書を紹介していく。今年の本ではなく、割と古典的な本が多かった。

レガシーコード改善ガイド

www.shoeisha.co.jp

「テストがないコードはレガシーコードだ!」という過激?な定義をしつつ、「とはいえ目の前にテストのないコードがあるんですがどうすれば、、、」という人のために、テストのないコードに安全にテストを書いていく方法をていねいに解説してくれる本。 OOP全盛の時代の本なので、今だったら別なやり方をするよな〜みたいな話はあるものの、それでもエッセンスとしては有用だったりする。もちろん今もそのまま使える手法もたくさんあって、

あたりはとてもお世話になった。(後者は既存のコードをテストで保護できている訳ではないので最終手段ではあるのだが)

言い回しがユーモラスだったり、「そうそうそうなんすよ〜(涙)」みたいになる文章も多く、筆者のファンになった。笑

単体テストの考え方/使い方

book.mynavi.jp タイトルは「単体テスト」だけど、「単体テストとは何か」の定義から始まり、「単体テストや統合テストの対象とするコードは何か」「対象とするためにはどうリファクタリングすれば良いのか」という話があったり、全然単体テストだけの本ではない。 モックの使い方に1章割かれているなど、これまでなんとなくあいまいにしていたことが体系だって説明され、その上で筆者のスタンスがはっきりとられている。体系だった説明をした上でスタンスを取ってくれると、「いやでも自分の状況だとこっちだな」とか考えが進めやすくて非常に助かる。 本当にいい本だった。

この書評(?)記事もすごくおもしろかった。 swet.dena.com

Webフロントエンド ハイパフォーマンス チューニング

gihyo.jp いい加減フロントエンドから逃げるのをやめないとな・・・と思ったものの、そもそもブラウザがよくわからないな・・と思い、同僚に相談しておすすめしてもらった本。 パフォーマンスチューニングとあるけど前半はブラウザの動きについて書かれていて、かといって重厚なわけでもなくとても助かる本だった。 わからない分野は何を読めばいいかわからん、みたいになりがちなので、こういう時わかってる人にオススメしてもらえるのは本当に助かる。

Real World HTTP 第2版

www.oreilly.co.jp これもフロントエンド駆け出すぞということで読んだ本。なんとなく知っていたことも多かったのだが、やはり穴も多く、そこをドンピシャにビタっと体系的に説明してくれる本で非常に助かった。 XHRがMicrosoft発祥というのが一番驚いたポイントだった。

.NETのエンタープライズアプリケーションアーキテクチャ 第2版

bookplus.nikkei.com

前に読んだんだけど改めて読んで「やはり最高だな・・」となった本。前半はソフトウェア設計の原則のようなことが書かれていて、後半以降はドメインモデリングやCQRSなどのトピックを扱っている。それぞれの説明が体系だっていつつも実践的で、例えば定期的に議論になる「DB を入れ替えたいなんてそうそう起きないよ」みたいな話は、「そんなこと実際はそうそう起きないよ」などと書かれていたりする。 「.NETの」という名前でかなり損している気がする。

JavaScript関数型プログラミング

book.impress.co.jp関数型プログラミングを学ぶ入門にいいよ」とこれまた同僚にオススメしてもらった本。JavaScriptとあるけど全然読めた。実際に書かなければ分かるようにならない気はするが、関数型プログラミングのエッ(センス)くらいは学べた気がする。 単体テストの考え方/使い方でも関数型プログラミングの考え方を利用していたりして、ここで読んだことが役に立つシチュエーションが結構多かった。

所感

レガシーコードと格闘するシチュエーションがあり、それ関連の書籍をたくさん読んだ感じだった。読んでみると、「こんな先人の知恵が・・・」となることも多く、もっと早く読んでおくべきだったなぁ〜となった。 また狙った訳ではないのだが、『レガシーコード改善ガイド』『単体テストの考え方/使い方』『.NETのエンタープライズアプリケーションアーキテクチャ』と、C#で書かれた書籍が多くなった。 あとはフロントエンド(に至っていないかもだが)関連の書籍も、今まで逃げてきた(?)分野だったこともあって、勉強し始めるとすごくおもしろく読めた。

そのほか読んでよかった本