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

2013年中に読んでためになった技術書をまとめたものです。
「広く(世間一般的な感覚ではなく、私の感覚で)浅く」「幅優先」で
進めてみました。

ミドルウェア

去年、最も力を入れたのはミドルウェア系の書籍です。ミドルウェアの経験のなさが私の弱点のうちの一つなので、色々読んでみました。

また、読書ではないですが、気合で未経験のままOracle MasterをBronze〜Goldまで2ヶ月ほどで取得してます。
(殆ど意地というか、気合ですね。ああいうの大好物なので・・・。早くGold取得前提の研修を受けないとorz)

WebSphere Application Server V7: Concepts, Planning and Design

世界的にシェアが高いIBMのAPサーバWASのバイブルです。
基本的なコンセプト、トポロジ、メッセージング、セキュリティ、クラスタリング等、WASの機能について網羅的に広く浅く解説しています。
かなり実践的なトポロジやクラスタリングの考え方、パターンを解説しているため、実際のシステムでの使われ方を想像できました。
※ちなみに最新のWAS8.5ではなくて、WAS7なのは、開発環境がWAS7で固定なためです。

WebSphere Application Server V7 Administration and Configuration Guide

WASに関して深く踏み込んだタスクベースのガイドブックです。インストールからクラスタの構成、Jythonによる操作等、現場ですぐに使える知識が盛り沢山です。
また、Concepts〜の方では薄かった、MonitoringやDatabaseアクセス、セッション管理、クラスローダ等も詳細に解説されており、WAS管理者なら必読です。

Solr In Action

OSS全文検索サーバApache Solrのガイドブックです。全文検索は様々なプロジェクトで必要なので、Solrに手を出しました。
内部の仕組みの概要が丹念に解説されて、全文検索の仕組みの概要をつかめます。また、Solrでできること、できないことがはっきり解説されており、Solr使いなら必読書でしょう。

テスト系

Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional

テストの体系だった知識を学びたくて読んでみました。小手先のテクニック集ではなく、「テストとはなにか」「テスト戦略」から始まり、トップダウンで体系だった知識を身につけられます。
また「Pragmatic」のタイトルどおり実践寄りで、章末問題も相当な難易度で挑む価値があります。
テストと言って普通思い浮かべる「同値分割」や「デシジョンテーブル」といった現場で即使えるテクニックの解説もありますが、大分後に来るので、
著者としては、「ソフトウェアテストの世界観の理解」「テスト戦略の理解」の方が大事なんでしょうね・・・。
テクニックに関しては、ドキュメントレビューを「Static Testing」と位置づけ、複数変数の同値分割であるドメインテストは役に立ちました。

OS等

z/OS concepts

IBMメインフレーム用OS「z/OS」の解説書です。仕事でz/OSを扱うため、ひと通り読む必要がありました。
Unix系OSとの対比や、JES,JCL,データセット等のz/OS独特の概念の解説等、非常に読み応えがあります。
また、TSOパネルの操作方法等、実践的な解説もあり、これ一冊でひと通りz/OSの基本的な要素を網羅できます。
これ一冊でz/OSマイスターにはなれませんが、z/OS上で動く他のソフトウェアのオペレータになるには十分です。

開発プロセス

ユースケースの実践的なガイドラインを示している良書です。「実際のプロジェクトにおいて、限られたリソースで効果的な成果物を作成する」ことに
フォーカスしており、非常に実践的でとてもためになりました。かる〜く読める系の書籍だと思います。


Essential Scrum: A Practical Guide to the Most Popular Agile Process

有名なアジャイル開発プロセスの内の一つ、「スクラム」の解説書です。
スクラムのフレームワークはとてもシンプルでわかりやすく、正直だとは思うのですが、
あまりにもシンプル過ぎて属人的であると感じました。
大規模開発への適用は難しいかもしれませんが、顧客が納得いくまでイテレーションを
回せるので一品物のツールや、フィーリングが大事なGUIアプリには有効かもしれません。

Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation

SIの現場でも取り入れるのが当たり前になりつつある、CI(Continous Integration)のバイブルです。
冗長な記述が多い、筆者が好む専門用語を説明無しで多用する、節が1つ変わると内容が全く異なるなど、非常に読みづらいですが、
内容は充実しており、「ソフトウェアデリバリーの大切さ」が身に染みてわかる良い書籍です。
実際、この書籍のパターン、考え方等を初めから上手く適応できていれば、苦労はずっと少なく済むはずです。

ただし、デザインパターンの書籍と同じく、「ある程度蒸留されたコンセプト、ベスト・プラクティスの解説」がメインであるため、
実際のツールの使い方などは別の書籍で補完する必要があります。


Jenkins: The Definitive Guide

CIサーバの最も有名な実装である「Jenkins」の仕組み、使い方等を解説した書籍です。
Jenkinsは機能拡張が頻繁で、プラグインの流行り廃りも激しいためか、
この書籍ではJenkinsの基本的な概念、使い方等余り手が入らないところの解説に
重点が置かれているので、Jenkinsを初めて使う人にはだれにとっても役に立つ書籍に
仕上がっています。

ただし、Jenkinsはベスト・プラクティスやパターンを編み出し、様々なプラグインを組み込んでこそ効果を発揮するので、
googleで
slideshare Jenkins best practice
などと検索するとたくさんひっかるので、最近のトレンドを追いかけるべきかと思います。

デザイン等

Design Patterns: Elements of Reusable Object-Oriented Software

有名なGOFです。ちょっと説明不足だったり、適切で無い箇所もありますが、全体的に非常にクオリティが高く、オブジェクト指向プログラムを「まじめに」書くならマストバイな書籍です。
別の記事でそこそこ詳しいレビューを書いてます。
「Design Patterns: Elements of Reusable Object-Oriented Software」の私的レビュー

Designing Interfaces

GUIの設計パターンの書籍です。「インターフェースのデザインとはなにか?」から丹念に解説されており、単なる流行りもののライブラリの使い方とは
一線を画す内容です。逆に言えば、こういうバックグラウンド無しで快適なインターフェースをデザインすることは難しいでしょう。


The Art of Readable Code

コーディング力を高めるために読んでみました。ずっと仕事でコーディングしている人にとっては「何を今更」という内容かもしれませんが、
経験の浅い私にとっては、とてもためになりました。全体的に軽いノリで、挿絵が漫画なので、肩に力を入れずに読めるはずです。