Rubyアプリケーションプログラミング

  • ただいまウェブストアではご注文を受け付けておりません。
  • サイズ B5判/ページ数 508p/高さ 24cm
  • 商品コード 9784274064616
  • NDC分類 007.64
  • Cコード C3055

出版社内容情報

【セールスポイント】
Rubyでアプリケーションを作成するための実用情報が満載

【発刊の目的と内容】
Rubyを使えばソケットやスレッドを使った実用的なプログラムを比較的簡単に作ることができます。しかし、Rubyも魔法の杖ではありませんから、ある程度の規模のアプリケーションを作るためには、それなりにいろいろな知識が必要になります。本書では、アプリケーションを作成するために必要なさまざまなテクニックを紹介します。

* オブジェクト指向プログラミング
* CGIによるWebプログラミング
* マルチスレッドによる並行プログラミング
* クライアント/サーバ型のネットワークアプリケーション
* Ruby/TkによるGUIアプリケーション
* C言語による拡張ライブラリ作成、およびRubyインタプリタの組み込み

【購読対象者】
プログラマ、Rubyやオブジェクト指向技術に興味のある人

【付録】
CD-ROM 1枚付

【詳細目次】
はじめに
本書を読む前に
本書のねらいと対象読者
対象とする環境
本書の構成
表記凡例
付属CD-ROMについて
免責事項

■第1章 イントロダクション:Rubyとは
1.1 Rubyの特長
1.2 Rubyの用途
1.3 Rubyの哲学
1.4 Rubyの歴史
1.5 現在のRuby
1.5.1 Rubyのバージョン
1.6 将来のRuby

■第2章 オブジェクト指向プログラミング
2.1 オブジェクト指向の歴史
2.2 オブジェクト指向入門
2.2.1 オブジェクト指向の真髄
2.2.2 オブジェクト指向関連の用語
2.2.3 オブジェクト指向言語の機能
2.2.4 最初のオブジェクト指向プログラミング
2.2.5 その次のオブジェクト指向プログラミング
2.3 クラスと継承とMix-in
2.3.1 多重継承
2.3.2 Mix-in
2.4 オブジェクトベースプログラミング
2.4.1 特異メソッド
2.4.2 特異Mix-in
2.4.3 特異クラス
2.5 メタプログラミング
2.5.1 メタ情報に関するメソッド
2.5.2 eval族
2.5.3 フック
2.5.4 メタプログラミングの例
2.6 オブジェクト指向設計入門
2.6.1 オブジェクト指向設計とは何か
2.6.2 手順1:問題を把握する
2.6.3 手順2:小人に役割を割り当てる ――オブジェクトの見つけ方
2.6.4 手順3:小人を具体化する ――オブジェクトの見極め方
2.6.5 手順4:オブジェクトをクラスにする ――クラス設計
2.6.6 手順5:プログラムを構築する ――プログラム構成
2.7 リファクタリング
2.7.1 リファクタリングとは
2.7.2 テストファーストプログラミング
2.7.3 リファクタリング・カタログ
2.7.4 リファクタリングのうれしさ

■第3章 CGIプログラミング
3.1 おさらい~CGIを取り巻く世界
3.1.1 登場人物とその関係
3.1.2 CGIスクリプトたるには
3.1.3 CGIとフォームとリンク
3.1.4 付加条件付きリクエストの姿(その1)
3.2 Hello World!
3.2.1 HTTPサーバの設定
3.2.2 CGIスクリプトのためのApacheサーバの設定
3.2.3 さあ試してみよう
3.3 CGIスクリプトとHTTPサーバ――CGIの詳細
3.3.1 ブラウザ――付加条件付きリクエストの姿(その2)
3.3.2 HTTPサーバ――およびCGIの実際
3.3.3 CGIスクリプトでの入出力
3.3.4 HTTPサーバを経てブラウザへ
3.3.5 レスポンスを受けたブラウザの動作
3.3.6 まとめ:それぞれの役割
3.4 Ruby的CGIスクリプト入門
3.4.1 CGIサポートライブラリcgi.rb
3.4.2 入力は信じられない
3.4.3 途切れ途切れのやり取り――セッション管理
3.4.4 クッキーとセッションの維持
3.4.5 実用クッキー
3.4.6 競合――ロック
3.4.7 この節のまとめにかえて
3.5 eRuby
3.5.1 eRubyのメリット
3.5.2 Erbを使う
3.5.3 erubyを使う
3.5.4 mod_rubyを使う
3.5.5 mod_rubyとCGIの違い
3.6 セキュリティ
3.6.1 ファイルの置き場所
3.6.2 ファイルの持ち主とそのモード
3.6.3 suEXEC
3.6.4 やってはいけないこと
3.6.5 クロスサイトスクリプティング
3.7 より高度なCGIスクリプト
3.7.1 データベース
3.7.2 こんなやり方も… DRb
3.7.3 実用例

■第4章 マルチスレッド
4.1 スレッドの概要
4.2 スレッドの基本的な操作
4.2.1 生成
4.2.2 合流
4.2.3 終了
4.2.4 停止
4.3 スレッドと例外
4.4 同期
4.4.1 排他制御――Mutex
4.4.2 デッドロック
4.4.3 Sync(リーダ-ライタ・ロック)
4.4.4 条件変数
4.4.5 セマフォ
4.5 非同期FTPクライアント

■第5章 ネットワークプログラミング
5.1 プロセス間通信とネットワーク通信
5.2 プロセス間通信
5.2.1 プロセスとは
5.2.2 パイプ
5.2.3 外部コマンドとの通信
5.2.4 子プロセスとの通信
5.2.5 子プロセスのゾンビ化の防止
5.3 ネットワーク通信の仕組み
5.3.1 サーバとクライアント
5.3.2 ネットワークプロトコル
5.3.3 接続先決定の仕組み
5.3.4 ネットワークバイトオーダー
5.4 プロトコルの特徴
5.5 Rubyのソケットライブラリ
5.6 TCPソケットプログラミング
5.6.1 接続の確立
5.6.2 1対1の同期通信:エコーサーバ/クライアント
5.6.3 タイムアウト
5.6.4 特定のプロトコルに沿った通信
5.6.5 1対1の非同期通信
5.6.6 切断における協調
5.6.7 複数クライアントを並列に抱えるサーバ
5.7 UDPソケットプログラミング
5.7.1 UDPソケットによる通信
5.7.2 複数クライアントへの対応
5.7.3 UDPソケットでのconnect
5.7.4 信頼性の向上
5.7.5 ブロードキャスト
5.8 デーモンの作成
5.8.1 バックグラウンドへの移行
5.8.2 資源の切り離し
5.8.3 シグナルへの対応
5.8.4 安全なディレクトリへの移動
5.8.5 ファイルの保護
5.8.6 セキュリティの強化
5.8.7 作例――伝言サーバ
5.8.8 Unix系OSのスーパーサーバinetd
5.9 ネットワークプロトコルライブラリ
5.10 分散Ruby

■第6章 RubyとGUI――Ruby/Tk入門
6.1 グラフィカルユーザインタフェース(GUI)
6.1.1 GUIの功罪
6.1.2 GUIとスクリプト言語
6.2 GUI作成の流れ
6.3 Tk入門
6.3.1 Tkの特徴
6.3.2 Ruby/Tk
6.4 Ruby/Tkの概要
6.4.1 Ruby/Tkのインストール
6.4.2 最初の一歩(Hello, world!!)
6.4.3 日本語表示
6.4.4 もう一つのウィジェット初期化法
6.5 Rubyで使えるその他のGUIライブラリ
6.6 Ruby/Tkのウィジェット
6.6.1 ウィジェットクラスの階層
6.6.2 Tk変数オブジェクト
6.6.3 他者の土台となるウィジェット
6.6.4 ボタン系のウィジェット
6.6.5 メニュー(menu)ウィジェットとメニューボタン(menubutton)ウィジェット
6.6.6 文字列を扱うウィジェット
6.6.7 その他のウィジェット
6.6.8 Ruby/Tk Widget-Demo
6.7 ウィジェットの配置管理の仕組み―ジオメトリマネージャ
6.7.1 Packジオメトリマネージャ
6.7.2 ほかのジオメトリマネージャ
6.8 ウィジェットの重なり順序
6.9 一般的なウィジェット属性
6.9.1 ウィジェット属性へのアクセス方法(メソッド)
6.9.2 表示文字列に関する属性
6.9.3 大きさに関する属性
6.9.4 枠に関する属性
6.9.5 色に関する属性
6.9.6 余白に関する属性
6.9.7 コマンド属性
6.9.8 フォント属性――TkFont
6.9.9 その他の属性
6.10 作例――既存のコマンドにGUIを付ける

■第7章 Ruby/Tkの詳細
7.1 テキストウィジェットの詳細
7.1.1 テキストインデックスとテキストマーク
7.1.2 テキストタグ
7.1.3 ウィジェットやイメージの埋め込み
7.2 Composite Widgetの作成
7.3 イベント処理(バインディング)
7.3.1 バインディングの方法とバインドタグ
7.3.2 イベント
7.3.3 イベントキーワード
7.4 ウィンドウマネージャとの連携
7.5 作例――より親切なGUIへ
7.6 イメージ
7.7 キャンバスウィジェットの詳細
7.7.1 キャンバスの機能と特徴
7.7.2 キャンバスオブジェクト
7.7.3 キャンバスタグ
7.7.4 PostScript出力
7.8 その他のRuby/Tkメソッド
7.8.1 フォーカス(focus)とグラブ(grab)
7.8.2 組み込みのダイアログ
7.8.3 タイマーオブジェクト(TkAfter)
7.8.4 最後の手段
7.9 スレッドとともに
7.10 Tcl/Tkの拡張ライブラリを使う

■第8章 GUIを持ったネットワークアプリケーション例
8.1 全体構成
8.2 ネットワーク通信
8.3 接続パラメータ設定ウィンドウ
8.4 接続認証ダイアログ
8.5 接続状態ウィンドウ
8.6 メニュー部
8.7 チャットボックス部
8.8 キャンバス部
8.9 描画機能ボタン部

■第9章 拡張ライブラリとRubyインタプリタの組み込み
9.1 拡張ライブラリとは
9.2 拡張ライブラリのインストール
9.3 hello world
9.4 Ruby API
9.4.1 データ型:VALUE
9.4.2 データ型:ID
9.4.3 クラス・モジュール定義
9.4.4 メソッド定義
9.4.5 定数の定義
9.4.6 RubyとCの型変換
9.4.7 構造体
9.4.8 インスタンス変数のアクセス
9.4.9 メソッド呼び出し
9.4.10 ブロック付きメソッド(イテレータ)
9.4.11 例外処理
9.5 bzip2拡張ライブラリの作成
9.5.1 はじめに
9.5.2 作成方針
9.5.3 extconf.rbの作成
9.5.4 プロトタイプの作成
9.5.5 例外の発生
9.5.6 close時の処理
9.5.7 GCへの対応
9.5.8 引数の省略のサポート
9.5.9 イテレータの定義
9.6 アプリケーションへのRubyインタプリタの組み込み
9.6.1 はじめに
9.6.2 hello world
9.6.3 インタプリタの初期化
9.6.4 インタプリタの呼び出し
9.6.5 インタプリタの終了処理
9.6.6 エラーリカバリ
9.6.7 セキュリティについて
9.6.8 簡易対話環境

■付録A Rubyのインストール
A.1 Rubyのインストール方法
A.1.1 バイナリパッケージを利用する
A.1.2 ソースコードからビルドする
A.1.3 Windows系OSへのインストールについて

■付録B 支援ツールの利用
B.1 デバッガ
B.2 プロファイラ
B.3 Emacs用Rubyモード
B.4 その他のツール

■付録C リファレンス
C.1 リファレンス
C.1.1  章別一覧
C.1.2  著者名順一覧
C.1.3  オンラインリソース

索引のインストール
A.1 Rubyのインストール方法
?
????R ??
A.1.2 ソースコードからビルドする
A.1.3 Windows系OSへのインストールについて

■付録B 支援ツールの利用
B.1 デバッガ
B.2 プロファイラ
B.3 Emacs用Rubyモード
B.4 その他のツール

■付録C リファレンス
C.1 リファレンス
C.1.1  章別一覧
C.1.2  著者名順一覧
C.1.3  オンラインリソース

内容説明

本書では、Rubyでアプリケーションプログラムを書くときに役立つ、さまざまなテクニックを解説します。

目次

第1章 イントロダクション:Rubyとは
第2章 オブジェクト指向プログラミング
第3章 CGIプログラミング
第4章 マルチスレッド
第5章 ネットワークプログラミング
第6章 RubyとGUI―Ruby/Tk入門
第7章 Ruby/Tkの詳細
第8章 GUIを持ったネットワークアプリケーション例
第9章 拡張ライブラリとRubyインタプリタの組み込み

著者等紹介

前田修吾[マエダシュウゴ]
1975年生まれ。株式会社ネットワーク応用通信研究所勤務

まつもとゆきひろ[マツモトユキヒロ]
株式会社ネットワーク応用通信研究所主任研究員。Rubyの生みの親であり、cmailの(元)保護者。と同時に二女一男の父、良き夫でもある

やまだあきら[ヤマダアキラ]
Debian Projectオフィシャルメンバ、「日本のLinux情報」制作メンバの1人。Vine Caves.Ltd.所属。現在は各種LinuxディストリビューションのRubyパッケージのメンテナンスなどを通してRuby普及のために活動中

永井秀利[ナガイヒデトシ]
1963年生まれ。執筆時は九州工業大学情報工学部知能情報工学科に勤務
※書籍に掲載されている著者及び編者、訳者、監修者、イラストレーターなどの紹介情報です。

感想・レビュー

※以下の感想・レビューは、株式会社ブックウォーカーの提供する「読書メーター」によるものです。

のぶ

0
本書が出てからもう13年、いつのまにかRubyも歴史ある言語になりました。でも内容は決して古くなってませんね。Rubyが普及してきて言語の入門書は書店に数多く並ぶようになりましたが、その多くはプログラミング入門かRuby風スタイル入門で、乱暴に言えば、トイプログラムまでは書けるけど、実世界で使えるソフトを作ろうとした時に途方に暮れてしまう範囲に留まった本が多いんです。本書はその不足部分を補う本として今なお重要な位置を占めているように思えます。本書で扱っているtkは今や唯一の標準添付のGUIになってますし。2015/02/20

外部のウェブサイトに移動します

よろしければ下記URLをクリックしてください。

https://bookmeter.com/books/167329
  • ご注意事項