2012年中に読んだ技術書のまとめ

2012年中に読んでためになった技術書をまとめてみました。一応、順番はおおまかな重要度(お役たち度)のつもりです。

OOP/OOD

The Art and Science of Smalltalk


Smalltalkだけでなく、オブジェクト指向プログラミング全般について解説しています。Smalltalkに興味が無くとも、MVCオブジェクト指向プログラミングに関する記述は一見の価値があります。別に記事を作成しています。
The Art and Science of Smalltalkでオブジェクト指向を理解する - zyake_mk2の日記

Head First Object-Oriented Analysis and Design



オブジェクト指向分析設計、開発のやり方を、実際に手を動かしながら学べるオライリーのシリーズものです。ページ数の割に絵が多く文字数が少ないですが、わかりやすく、絵や派手な文字、大量の練習問題で基本を徹底的に脳みそに刷り込むのには適していると思います。ただし、「基本を徹底的に脳みそに刷り込む」ことに特化しているので、ページ数の割に情報が少なく、幅はあってもそこまで深いわけではなく、他の本に進む前のウォーミングアップ用といった印象です
(まだ先に進めていないですが・・・)

Pattern Oriented Software Architecture Volume2



汎用的なパターンについて扱ったPOSA Vol1に対し、主に並行性、分散処理のパターンについて詳細に扱っています。情報量は圧倒的で、各パターンの解説もさることながら、各パターンのバリエーション、実装のポイント、各パターン同士の関連、パターンを組み合わせた「パターン言語」などなど、「そこまでするか!」ってレベルでぎっちり記述されてます。また、本編中にもあるように各パターンはどれも汎用性がそこそこ高いので、知っていると「あのライブラリ/APIはこういう考え方に基づいて作られていたのか!」というのがわかって、ちゃんと正しい使い方を考えられたり、「ここぞ」という時にパターンの考え方を適用して問題解決に役立てられるのでお勧めです(実際、今やってるテストケース作成でも、Active Objectパターンの考え方を上手く使って、テストの実行時間を削減できました)ただ、Vol1の時もその傾向があったのですが、Vol2はVol1にも増して1パターンに色々詰め込み過ぎです。ものにもよりますが、1パターンがあまりにも巨大でかつ、他のパターンと関連していたりして全体像がつかみにくいし、パターンのバリエーションでは、「そもそもこのパターンは何の問題を解決してくれるの?」というところすらぶれていることがあるので、読んでいて混乱するかもしれません。
(使えるという意味での重要度では、Smalltalk本のほうが上だと思いますが、個人的には物凄く好きです)

Database

Beginning Database Design



データベース設計の入門書です。データベース、関係代数の基本から、設計の手法、設計パターンから、仮想プロジェクトで実際にDB設計をしてみる、プロジェクトでの立ち回り方(!!!)など、内容のバラエティーは豊かで、かつ大量の練習問題があってとてもためになりました。ただ、本編中にも「DB設計に正解は無いから、他のDB設計の本も読んだ方が良い」と書かれているとおり、この本の知識だけでDB設計するのは難しい気がします。(実際はどうやって設計してるんだろう・・・)

The Art Of SQL



RDBMS製品の使い方や、SQLの構文を知っているレベルから一歩先に進んだ、RDBMSを扱うときのセオリーを具体例を交えながら解説している濃い書籍です。1節ごとが短く、具体的なエピソードを元にセオリーを解説し、最後にまとめが書いてあるスタイルなので印象に残りやすいです(進捗度70%くらい。だんだん内容が高度というか、複雑なRDBMSの機能の使い方になって興味が薄れてきたのと、自分の英語力ではちょっと辛いorz)

SEのためのOracleチューニングハンドブック



チューニングハンドブックといいつつ、実際はRDBMSを扱うための知識全般について、非常に幅広く簡潔に扱った良書です。カバー範囲が非常に広く、Oracleの仕組みから設計、
保守運用までカバーしているので、一読するとDBを扱う時に考える必要のあることを網羅できる気がします。

Java Transaction Design Strategies

リンク


Javaトランザクションを扱うときの知識やパターンについて解説したWeb上の無料の書籍です。ACID特性やJTA,JTSから、JDBCを生で扱うときのポイント、EJBやSpringでのトランザクションの扱い方、トランザクション境界に関するパターンなどがわかりやすく解説されています。(さりげなくSpringの公式ドキュメントからもリンクが張られていたりします)

Head First SQL



オライリーのHead FirstシリーズのSQL版です。「Head First Design Pattern」「Head First Object-Oriented Analysis and Design」よりも切れが悪いというか、内容の踏み込みが足りず、浅いところでHead Firstシリーズのテンプレートを使っているだけな雰囲気がしますが、「SQLをわかりやすく、お手軽に再入門」するには良い本だと思います。

SQL and Relational Theory: How to Write Accurate SQL Code



DB2の中の人がSQLとRelational Modelについてねちっこく、どこまでも深く解説した本です。重要度がめちゃめちゃ高いのはわかるのですが、自分には色々難しすぎて、途中で挫折しましたorz

その他

The Art of Unit Testing: With Examples in .net



ユニットテスト全般について扱ったわかりやすい本です。ユニットテストを作るときのテクニック、考え方についてわかりやすく解説しています。別に記事を書いてます。
「The Art of Unit Testing with Examples in .NET」を読んでみた - zyake_mk2の日記