本書は、初めてプログラミングを体験するという方に向けた入門書の第3巻です。 みなさんが学んできたプログラミングの基本をもとに、Rubyのオブジェクト指向プログラミングをやさしく解説します。
オブジェクト指向と聞くと難しそうですが、心配はいりません。クラスの定義はもちろん、「カプセル化」「継承」「ポリモーフィズム」といったオブジェクト指向の基礎となる考え方からしっかりわかります。
そのほか、デザインパターンやプログラムのテスト、フレームワークの作り方など、これから本格的なプログラムを作るのに知っておきたい必須知識も、たくさんのサンプルプログラムで学習。Rubyを柔軟でパワフルな言語としているメタプログラミング機能にも触れます。
各章に小問題や章末の練習問題があり、自分ひとりでプログラムを作る力が身についたことを確認できます。また、Rubyプログラムを実行する環境も、付属のCD-ROMで簡単に用意することができます。
本書を片手に、プログラミングの新たなステップを踏み出してみましょう。
●付属CD-ROMのご案内
本書の付属CD-ROMには、実習に使用するRubyプログラムの実行環境を構築するためのインストーラパッケージや、本文で作成したサンプルプログラムなどが収録されています。
第1章 古典的なオブジェクト指向プログラミング
1-1 クラスの定義
手続き型からオブジェクト指向へ
クラスの役割と考え方
initializeメソッドとインスタンス変数
属性とアクセサメソッド
値オブジェクト
1-2 メソッドの作成
オブジェクト指向プログラミングの考え方
メソッドの設計
クラス定数・述語メソッド・self
メソッドのアクセス制御
まとめ
練習問題
第2章 継承とポリモーフィズム
2-1 クラスの継承
より進んだカプセル化
オブジェクトの区別は残った
クラスの継承
基底クラスのメソッドの利用
2-2 ポリモーフィズム
ポリモーフィズムとは
継承の問題点とダックタイピング
まとめ
練習問題
第3章 デザインパターン(1)
3-1 継承とテンプレートメソッドパターン
基本的な論理素子
論理素子のシュミレータを作る
継承によって重複を取り除く
テンプレートメソッドパターン
エラー処理を追加する
足し算を行う回路
3-2 オブザーバパターン
端子クラスの導入
yield制御構造
オブザーバパターン
Terminalクラスを使った回路の実装
クラスの責務と分割
論理素子の名前を保持する
新しい半加算器の実装
3-3 コンポジットパターン
全加算器の作成
3ビット加算器の作成
まとめ
練習問題
第4章 デザインパターン(2)
4-1 事象をオブジェクトとして扱う
論理素子の延長
イベント
テスターの作成
4-2 処理をオブジェクトとして扱う
コマンドパターン
順序付きリストとは
コマンドに大小関係を定義する
順序付きリストの実装
動的回路シュミレータ
4-3 ライブラリ化
ライブラリ化と名前空間
ファクトリパターン
共通部分の抜き出しとエラー処理
まとめ
練習問題
第5章 アプリケーションとフレームワーク
5-1 簡単なWebサーバーのプログラミング
ソケットの利用
HTTPリクエストの内容
HTTPレスポンスの内容
Webサーバーの仕組み
5-2 フレームワークの開発
オブジェクト指向プログラミングとフレームワーク
フレームワークの作成
クラス・モジュール自身のメソッド
まとめ
練習問題
第6章 ユニットテストとテスト駆動開発
6-1 ユニットテスト
ユニットテストプログラムとは
機能検証の方法
テスティングフレームワークの利用
6-2 テスト駆動開発
テストファーストとテスト駆動開発
テスト駆動開発の準備
テスト駆動開発の実践
リファクタリング
まとめ
練習問題
第7章 メタプログラミング
7-1 動的プログラミング
メタプログラミングと動的プログラミング
静的なプログラムで動的な処理を実現する
動的なプログラミングで動的な処理を行う
7-2 リフレクションの利用
リフレクションとは
オブジェクトの情報を操作する
Object・Module・Class
まとめ
練習問題
baboocon さん
2016-06-09
超速読で読了。このシリーズはソースコードが独特ながら充実しているのがいいですね。入門書でテストにも触れられているのは少ないかも?
ひじき さん
2015-01-31
オブジェクト指向を集中的に学ぶ本ではなく、オブジェクト指向に関係する様々なプログラミングスキルを向上させるための本だと思った。 特にテストに関する章は役立った。
parkplace さん
2013-06-07
後半はわからないところもあったが、ユニットテストなどアマチュアではわからないところも解説していて好感が持てた