実装パターンのレビュー
ちょっと前ですが読み終わったし需要ありそうなので簡単なレビュー書いてみます。
著者はケント・ベック、他にXPエクストリーム・プログラミング入門とか書いてる人。
価格も安いしうっかり即買いするレベルなんじゃないかなー
どっかのblogでもおまえらケントベック好きだなとかケントベックというだけで買いとか言われてたし。
まあ僕もそのパターンだったんですけどね、内容よかったですよ。
えっと目次
まえがき
http://www.pej-hed.jp/washo/2635.html
1章 はじめに
ツアーガイド
2章 パターン
3章 プログラミングの理論
価値
コミュニケーション
シンプル
柔軟性
原則
結果の局所化
繰返しの最小化
ロジックとデータの一体化
対称性
宣言型の表現
変更頻度
4章 動機
5章 クラス
クラス
シンプルなスーパークラス名
修飾的なサブクラス名
抽象インターフェース
インターフェース
別バージョンのインターフェース
抽象クラス
バリューオブジェクト
特化
サブクラス
実装クラス
内部クラス
インスタンス固有の振る舞い
条件分岐
委譲
プラガブルセレクタ
匿名内部クラス
ライブラリクラス
6章 状態
状態
アクセス
直接アクセス
間接アクセス
共通の状態
可変の状態
外部の状態
変数
ローカル変数
フィールド
引数
コレクティングパラメータ
パラメータオブジェクト
定数
役割を示す名前
宣言される型
初期化
早期初期化
遅延初期化
7章 振る舞い
制御フロー
メインフロー
メッセージ
選択メッセージ
二重ディスパッチ
分割メッセージ
反転メッセージ
招待メッセージ
説明メッセージ
例外フロー
ガード条件
例外
チェック例外
例外の伝播
8章 メソッド
複合メソッド
意図を示す名前
メソッドの可視性
メソッドオブジェクト
オーバーライドメソッド
オーバーロードメソッド
メソッドが返す型
メソッドのコメント
ヘルパーメソッド
デバッグ出力メソッド
変換
変換メソッド
変換コンストラクタ
生成
完全なコンストラクタ
ファクトリメソッド
内部ファクトリ
コレクション用アクセッサメソッド
論理値設定メソッド
クエリーメソッド
等価性メソッド
getter メソッド
setter メソッド
安全なコピー
9章 コレクション
メタファー
問題
インターフェース
実装
コレクションの拡張
10章 フレームワークへの拡張
アプリケーションを変更させないフレームワークへの変更
非互換のアップグレード
互換性のある変更の促進
付録A パフォーマンス測定
例
API
実装
MethodTimer
オーバヘッドの打ち消し
テスト
参考文献
索引
目次見てわかるように、本が薄い割には沢山のこと書いてます。
ただ、内容も薄いわけじゃなくて、コンパクトにまとまってるって感じ。
簡単に言うと、良いコードを書くための小さなテクニックやパターンのを集めた本ですね。
デザインパターンやリファクタリングなどを含むけど、もっと細かいレベルで良いコードを書く方法が詰まったエッセイ集とでも言えばいいのかな。
サンプルコードJavaで書かれてるけど、他のオブジェクト指向言語の経験があればJavaの知識はそんなに無くても読めると思います。
Java言語特有のテクニックについての言及は数ページ程度でしたし。
内容ですが、いい感じにまとまってると思います。
たとえばメソッドの粒度をそろえるだとか、セッターメソッドを使いすぎないで、意味のある名前を付けるとか、そういった基本的な事柄を分類して紹介しているのですが、説明が簡潔で分かりやすいのですらすら読めてしまいました。*1
例えば1行で済む処理を名前を持ったメソッドにする意味とか、フレームワークを作る際に、どこまでのイン他フェースを外部に公開するのがよいとか。
コレクションはどんなときにどのクラスを使えばいいのか(これはJava特有かも、C#も同じなのかなー)とか。
良いコードを書きたいけど、コードコンプリートなどの本は本気すぎてしんどいという人や、移動中に読みたいから薄い方がいいと思う人にはおすすめします!
*1:参考文献で紹介されている本のうちいくつかを僕が読んだことあるのもあるかもですが。