タイトル
まつもとゆきひろ コードの世界~スーパー・プログラマになる14の思考法
著者
まつもとゆきひろ (著), 日経Linux (編集)
出版社
日経BP出版センター
Amazonで購入する

本書は、まつもとゆきひろさんによる、プログラミングのいろいろな技術の考え方や考え方が生まれた経緯、目的などが解説されているプログラマ向けの本です。この本のすばらしいところは、Rubyの開発者であるまつもとゆきひろさんの言葉で各種技術が説明されているところです。

コーディングのあり方や、こういう考えを持って取り組むとよりよりコードが書けるようになる、こういうことを意識するとよいプログラマになれるという秘伝の極意が満載です。特に、Rubyの開発者という立場から話されている『第3章 ブロックについて』や『第14章 関数型プログラミングについて など』はタイトルだけ見てもヨダレが出そうになるくらいです。

本書のターゲットはよりよりプログラムを書きたいと思っている開発者、技術者の方々です。技術のうんちくや裏話、トリビアなどが好きな人におすすめの一冊です。

タイトル
インターフェイス指向設計 アジャイル手法によるオブジェクト指向設計の実践
著者
Ken Pugh (著), 角谷 信太郎(監訳) (翻訳), 児島 修 (翻訳)
出版社
オライリージャパン
Amazonで購入する

本書は、プログラムにおけるインターフェース設計へアドバイスを与えるものです。GUIやデザインの話ではありません。高凝集度で疎結合な設計を行うためにインタフェース設計をどのように進めたらよいか、どのように考えてインターフェースを作れば良いかなどを説明しています。

システム開発というのは複雑な作業です。その複雑さを少しでも解消するために分割して統治せよ(Divide and Conquer)という理論を用いることが良いことだとされています。このときに大切になってくるのが「凝集度」と「結合度」になります。

凝集度は高いほど良い、つまり責任範囲が明確でが軸ぶれないほどよいです。結合度は低いほど、つまりそっちはそっちで勝手にやっててねとできるほどよいです。高凝集で低結合(英語で言うと「High Cohesion and Low Coupling!」)なプログラム部品にするために必要なのが「良いインターフェース」なのです。本書は、この良いインターフェースとは何か?どうやって良いインターフェースを設計するか?を解説するものです。

本書の対象読者は、プログラム経験があり設計に興味がある人、DI(Dependency Injection)って流行ってたけど未だに何が良いのかわからない人、テスト容易性が大事って聞くけどどうやって設計したらいいかわからない人です。

200ページくらいしかなく、かなり薄い本になっていますのでサクサク読めると思いますが、実はあまり詳しい説明というのが載っていません。内容が薄いのではなく、説明が薄いのです。「こんな場合こういう考えでインターフェースを切ると良いよ。作り方は二種類ある。長所はこれで、短所はこれ」みたいな説明が多いように思えました。

それでもかなりの良書の部類に入ると思います。さらっと読んで、良く理解できなかった部分は先輩に聞いたり、Webで質問したりして、自分なりに噛み砕いていく。そういう読み方をする本かなと思います。

タイトル
ドメイン駆動
著者
Jimmy Nilsson (著), 尾島 良司 (監修), 株式会社ロングテール 長尾 高弘 (翻訳)
出版社
翔泳社
Amazonで購入する

本書は、ドメイン駆動設計(DDD:Domain Driven Design)について書かれているで、ドメインモデル、エンタープライズアプリケーションアーキテクチャ、アーキテクチャパターン、テスト駆動開発を勉強する本です。

この本のお勧めの点の一つが、筆者の経験をもとにした生きたサンプルにあります。「システム開発は○○の理由でドメイン駆動設計を行ったほうがよい。こういう背景があって、こういうアーキテクチャパターンの適用を考えていく。」こういった生きた経験が本書にちりばめられています。

対象読者は業務アプリケーション開発に携わるアーキテクチャ、システムエンジニア、開発者さん達です。最近は定着したドメイン駆動設計(ドメイン駆動開発)という言葉ですが、現場で実際に使われているのは実は少ないのではないでしょうか。ドメイン駆動で設計するとはどういったことなのか?本書を読めば、新しい視点が学べると思います。お薦めの一冊です。

タイトル
RESTful Webサービス
著者
Leonard Richardson (著), Sam Ruby (著), 山本 陽平 (監修), 株式会社クイープ (翻訳)
出版社
オライリー・ジャパン
Amazonで購入する

REST とは リソースの状態を表す「何か」を転送するということを表した、Webアーキテクチャスタイルです。REST はアーキテクチャではなく、アーキテクチャのスタイルであり、実際に REST スタイルのアーキテクチャとして、ROA(リソース指向アーキテクチャ)などがあります。

本書は、この REST と ROA に関して解説されたもので、RESTful なシステム(REST スタイルに則ったシステム)の設計方針、ROA の考え方などが解説されています。

Web アプリケーション開発をこれまでしてきた中で、RESTful や ROA な考えでシステムを設計したことがない人には、新しい発見があり、とてもわくわくして読むことが出来ます。

本書は、特に、Web アプリケーションの設計者、アーキテクトの方が読むと良いと思います。最近話題の REST の詳細を理解したい人、RESTful システムを構築したい人、ROA の考え方を取り入れたい人に本書はお勧めです。

オライリーっぽいちょっとお堅い文章ですが、楽しく読めると思います。『WEB+DB PRESS vol.42』の現場で使える REST の記事を読んで、REST とは何か? ROA とは何か?の概要を抑えてから読むと、理解が早いと思います。

お勧めです。

参考

yohei-y:weblog

Struts2 は WebWorks2 をベースとした MVC フレームワークです。Struts1 と変わらずコマンドパターンのフレームワークになっています。

コマンドパターンの実装部分では、OPENSYMHONY の XWork が使われています。

Struts2の特徴

  • WebWorks の後継となる WebWorks2 がベースの MVC フレームワーク
  • コマンドパターンが使われている(XWork が使われている)
  • アノテーションと XML ファイルによる設定
  • ActionForm がない。代わりにアクションにフォームデータを格納する
  • アクションは POJO で作成できる
  • アクションがスレッドセーフ
  • 設定ファイルに OGNL 式が書ける
  • View に JSP、Freemaker、Velocity、XSLT が使える
  • SpringFramework との連携が考慮されている
  • Ajax をサポートしている
  • プラグインによりフレームワークの拡張が行える

情報が正確ではない可能性が大いにあるので(ドキュメント読まずにソース見ながら書いているので・・・)、鵜呑みにしないでください。

随時更新予定です。

執筆時の環境

タイトル
Lifehacker インターネット時代のワークスタイル改善術!
著者
Gina Trapani (著), 新丈 径 (翻訳)
出版社
アスキー
Amazonで購入する

ライフハックとは、仕事や生活を快適にし、生産性をあげ、人生をハッピーにする技術のことです。本書はインターネット時代の現代におけるライフハックのノウハウ本です。

本書では、メールやネット上のツールを使ったハック術を取り上げて、実際の利用方法やTipsを解説しています。全88のハック術を説明しています。ひとつのハックが大体3〜5ページくらいに収まっているので、テンポ良く読み進められます。

対象読者は、今の自分の仕事環境や生活環境をよりよくしたいと考えている技術者の方です。簡単に導入できるものばかりなので、読んですぐ実践できるのが本書の良いところです。それぞれのハックに、導入レベル、プラットフォーム、導入コストが記されているので、自分の環境に合わせてハックを実践できるようになっています。

タイトル
オブジェクト指向入門 第2版 原則・コンセプト
著者
バートランド・メイヤー (著), 酒匂 寛 (翻訳)
出版社
翔泳社
Amazonで購入する

元祖オブジェクト本の第2版です。原則・コンセプトで構成された本書と、方法論・実践で構成される別冊の二冊をあわせて『オブジェクト指向入門 完全版』になります。

本書は、オブジェクト技術の核となる4つのアイデア、構造化手法信頼性の規律認識論上の原則分類の技法をソフトウェア工学からの立場で解説している言わばエンジニアリング本です。

結構小難しい言葉で書かれている部分があり、またページ数が多いため結構読むのが大変でした。その分本来のオブジェクト指向の考え方や良いプログラミングにつながる考え方が深くまで解説されていたりして、とても為になりました。

本書の対象読者は、オブジェクト指向技術に興味のある技術者や良い作法のプログラムを書きたいプログラマです。読むのは大変ですが損はない、むしろ読まないと損するくらいの本です。おすすめです。

タイトル
ソースコードリーディングから学ぶ Javaの設計と実装
著者
WINGSプロジェクト 佐藤 匡剛 (著), 山田 祥寛 (監修)
出版社
技術評論社
Amazonで購入する

本書の対象読者は、アーキテクトを目指す人、技術者としてさらに設計技術を高めたい人、フレームワークの設計に興味がある人です。かなり幅広い設計技法について紹介しているので、内容自体はそこまで濃いものではありませんが勉強になります。

おすすめです。