翔泳社セール対象商品(PDF)のうち定番ぽいタイトル11冊

翔泳社さんのセールが8/20までだそうなのですが、某所に書いた「定番ぽいやつ(紙で買ってるけどPDFもついでに買っておくと良いかも的な)リスト」をこちらにもかんたんな説明をつけて書いておきます。

なお、この「定番ぽい」というのは、何年も前から良い本として広くおすすめされてきた本や、これから末永くおすすめされそうな本、ということです。一般に書籍の評価は、賞味期限の長短やターゲットの広さ・狭さとは異なるので、別に広くおすすめされない本でもいい本はありますし、将来はさておき今なら必読、という本もあるわけです。が、それらを並べはじめるときりがないので、ここではそういった本はここでは触れません。

そういう縛りがなければ、例えばカイゼン・ジャーニーシリーズ(という言い方でいいのかな?)やルビィのぼうけんシリーズや技術者の数学書シリーズとかもあるわけで、各自探してみるとよいかと思います。

一方、もっとニッチな内容の本が読みたいとか、最新の情報が欲しいとかいう方のために「技術書典」というイベントがあります。突然ここから宣伝になるのですが、次回技術書典9は来月9月にオンラインにて開催予定で、ただいまサークル参加者を絶賛募集中です。読むだけじゃなくて何か書いてみたい! という方がいればぜひご応募ください。

techbookfest.org

さらに技術書典ではスポンサーも絶賛募集中なので、興味があるとか持続化給付金が余ってるという方がいらっしゃればぜひお声がけください。宣伝は以上です

※ COI開示: 翔泳社さんとは業務での取引がありますが、本件については金銭物品その他のやりとりはありません。

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

www.seshop.com

いかにも定番ですね。自動テストが当たり前とは言えなかった時代に「レガシーコードとはテストのないコードである」と喝破した本です。

とはいえ、別に本書が想定する現場としてはテストが当たり前にあるわけではありません。あくまで「レガシーコード」を改善する本なわけで、状況としてはテストがないところから始まるのです。テストがない、あるいは足りてない、と思うあなたのための本なので、安心して読んでいただけるかと思います(当たり前のようにテストがある開発しかしてない人も、いつかテストのないコードと戦わなければいけなくなった日に備えるべく読んでおくとよいでしょう)。

それでも躊躇してしまう人には「第24章 もうウンザリです。何も改善できません」だけでも読んでいただきたいです。直球ど真ん中すぎる章タイトルですが、ひどい状況であっても著者は投げ出したりTwitterで愚痴ったり転職を煽ったりせず、それでもできるコード改善方法を挙げてくれます。いやまあ投げ出すべき状況もあるかとは思いますが、そうしないで頑張ってみるあなたを応援してくれる本です。

エンタープライズアプリケーションアーキテクチャパターン

www.seshop.com

PoEAA、あるいはPofEAAと呼ばれる本です。エンタープライズと名前がついてますが、エンタープライズはあまり関係なく、主にサーバとクライアントに分かれる環境では一般的なアプリケーションのアーキテクチャパターンが網羅されている本です。

だいぶ前の本ですし、最近はあまり直接的に言及されることは少なくなった気もするのですが、つい油断すると本書のパターンの名前が一般会話で出てきて困ってしまうこともあるかもしれません(トランザクションスクリプトとかサービスレイヤーとか)。特に後述するDDDとかを読むにあたって、本書を読んでないと理解するのは相当大変だと思います。

翻訳は正直微妙というか、私の持ってる紙の本にもちらほら手書きで修正している跡が残っているのですが、そこは目をつぶって頑張って読んでいただきたいです。そんなことで頑張りたくない…という方は原著を読むという選択肢もあります(セール関係なくてすみません)。

エリック・エヴァンスのドメイン駆動設計 ソフトウェアの核心にある複雑さに立ち向かう

www.seshop.com

DDD本です。現在では定番中の定番といってよいでしょう。

ドメイン駆動設計については、なんとなく実装パターン的な扱いをされることも少なくなさそうですが、基本的にはドメインモデルをどう作る(=モデリングする)か、そしてそれを崩さずにソフトウェアアーキテクチャと対応させるか、という手法だと理解しています。「ドメイン駆動設計」であって「ドメイン駆動開発」ではないのは、偶然ではなく意図的なものだと思ってます。

そのドメイン駆動設計を理解するためには、なにはともあれ本書を読まれると良いかと思います。

実践ドメイン駆動設計

www.seshop.com

IDDD本、でいいんでしたっけ。DDD本を実践してみる、というタイトルそのままの本です。

設計手法といっても開発に落とし込まないといけないのですが、ドメインモデリングの戦略的設計よりも戦術的設計の設計パターンばかりが知られることによって結局単なる設計・実装手法になっているのでは…? という問題意識と、DDD本刊行から10年たって時代の変化を反映させたいというところから書かれた本だと理解しています。

実は本書はちゃんと読んでなくて(Javaはほとんど使わないので…)、いくつか実装の参考にした程度なのですが、DDD本だけではよく分からない・ピンとこないという方は本書も合わせて読むといいんではないかと思います。

プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに

www.seshop.com

SQLSQLプログラミングを、DBA(DB管理者)視点ではなくプログラマ観点から理解する本です。

個人的にお世話になった本の最新版ということであげておきますが、今なら他にも良い本がありそうではあります。が、安心して読める本が継続して出版(そして翻訳)されることは大変ありがたいことなので挙げておきます。

詳解UNIXプログラミング[第3版]

www.seshop.com

Unixプログラミングの定番書です。

Unixシステムコールを叩くプログラムを書く場合や、Unixで動くアプリケーションの運用をする場合には絶対に読んでおくとよい、と言われていた本です。困ったときに本書を読むとちゃんと載っているので読んでおけと言われ、本当かなと思いつつ読んでみたら本当に載っててびっくり、という経験をした人は少なくないのではないでしょうか。

Unixと関わる限り、いざという時のために手元においておきたい本です。

ユースケース駆動開発実践ガイド

www.seshop.com

この文章を書きながら本書があることに気づきました。ICONIXという開発方法論の本です(手元の本が見つからないので記憶で書いてます)。

開発方法論は現在は受難の時代というか、よい入門書とかも少ないんですよね…。みんなどうやって入門しているんでしょうか。 本書は数少ない生き残りの本なのですが、ICONIX開発プロセスの中では比較的とっつきやすい(主観です)からかもしれません(たまたま偶然かもしれません)。 いきなりDDDとかでモデリングやるよりは、いったんICONIXとかを試してみてからの方が分かりやすいんではないかと思います。

そういう意味で貴重な本なので、クラス設計(関数寄りだと型設計になるんでしょうか?)とかの良し悪しがわからない、という人はぜひ読んでみるといいかと思います。

組織パターン チームの成長によりアジャイルソフトウェア開発の変革を促す

www.seshop.com

デザインパターン的なパターン言語を組織やプロジェクトマネジメントにも応用してみた、という本です。

ソフトウェアのパターンじゃないパターン言語はなかなか難しいものが多いような気がするのです(主観です)が、本書はその中でも上手くいっている方ではないかと思います。基本として読んでおくとよいかと思います。

モダン・ソフトウェアエンジニアリング

www.seshop.com

これは新しい本ですね。あらゆる開発方法論を大統一するEssenceを紹介する本です。

まー、正直言ってEssenceは大変ビミョウというか、記述用言語としてなら開発方法論マニア(?)には便利かもしれないけど現場の役に立つかどうかは怪しいところではあるかなあ…というのが率直な感想です。が、せっかくのIvar Jacobson先生最新の集大成っぽい本ですし、「開発方法論、そしてソフトウェア開発とは何なのか」をメタな視点から見てみるのは、そういう機会がない人には一度はやってみた方がよいかとは思います。そういう意味では読んでみる価値はあります。

イノベーションのジレンマ 増補改訂版

www.seshop.com

これはソフトウェア開発のみならず、ビジネス書としても大定番ですね。ハードディスク業界の例が出てくるのでソフトウェア開発者の方にも親近感が湧きそう…と思ったけど今どきのソフトウェア開発者はハードディスクとか知らなかったりするんでしょうか…どうなんだろう…というのは置いておいて。

この本のミソは、市谷さん風にいうと「正しいものを正しく作る」にも関わらず失敗する(ことがある)、そしてそれには理由がある(!)、というところですね。事業が失敗していく原因を、作り方が間違えていたとか、作るものが間違えていた(顧客の要望を聞かなかった・答えなかった)ということだと考えられていたところに、そうではないという見解をケーススタディと合わせて紹介したところに価値があると言われています。が、素朴に読んでも面白いので、ビジネス書にも興味ある人は読んでみるといいかと思います。

CODE VERSION 2.0

www.seshop.com

こちらもソフトウェア開発の本ではないですが、ネット黎明期に「自由」と「規制」の関係(規制がなければ自由も死ぬし、規制しすぎても死ぬ、ではどうすればよいのか)を記して評判となった本です。

登場当初からはネットも進化し、そして規制も進化しているのですが、今の方がより両者の関係は深く、そして難しくなっているといえます。その意味では牧歌的なところもあるかもしれませんが、その重要性は高まっているとも言えるでしょう。


以上、ざっと挙げてみましたが、とりこぼし等あるかと思うので、気になる方は他の本も探してみるとよいかと思います。参考になれば幸いです。