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

Rubyでアプリケーションを作成するための実用情報が満載

このような方におすすめ

プログラマ、Rubyやオブジェクト指向技術に興味のある人
  • 著者前田 修吾 まつもと ゆきひろ やまだ あきら 永井 秀利 共著
  • 定価3,780 (本体3,500 円+税)
  • B5変 528
  • ISBN978-4-274-06461-6
  • 定価
  • ポイント0
  • 数量

※本体価格は変更される場合があります。
※通常2〜3日以内で発送いたします。

  • 概要
  • 主要目次
  • 詳細目次

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

* オブジェクト指向プログラミング

* CGIによるWebプログラミング

* マルチスレッドによる並行プログラミング

* クライアント/サーバ型のネットワークアプリケーション

* Ruby/TkによるGUIアプリケーション

* C言語による拡張ライブラリ作成、およびRubyインタプリタの組み込み

https://www.ohmsha.co.jp/book/9784274064616/
本書を読む前に
第1章 イントロダクション: Rubyとは
第2章 オブジェクト指向プログラミング
第3章 CGIプログラミング
第4章 マルチスレッド
第5章 ネットワークプログラミング
第6章 RubyとGUI――Ruby/Tk 入門
第7章 Ruby/Tkの詳細
第8章 GUIを持ったネットワークアプリケーション例
第9章 拡張ライブラリとRubyインタプリタの組み込み
付録A Rubyのインストール
付録B 支援ツールの利用
付録C リファレンス
はじめに
本書を読む前に
本書のねらいと対象読者
対象とする環境
本書の構成
表記凡例
付属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  オンラインリソース

索引