実践 Rails

―強力なWebアプリケーションをすばやく構築するテクニック

[cover photo]
TOPICS
Programming , Web , Ruby
発行年月日
PRINT LENGTH
376
ISBN
978-4-87311-386-9
原書
Advanced Rails
FORMAT
PDF
Print
3,300円
この商品は品切れ再入荷未定です

本書はRuby on RailsでWebアプリケーションを構築した経験がある人を対象に、Railsの実用テクニックを解説します。Rubyのメタプログラミング機能やRailsの内部構造に始まり、データベースやセキュリティ、パフォーマンス、RESTfulアーキテクチャに関する実践的なテクニックに至るまで詳述し、その上で大規模なRailsプロジェクトの管理および他のシステムとのRailsの統合についてを説明します。
また、Railsの開発に参加する方法や、Railsを構成するコンポーネントの代替となるソリューション、アプリケーションの国際化などについても扱います。実践的にRailsを使いたいユーザ必携の一冊です。Rails 2.0対応。Rails 2.1プラグイン環境についての記述を付録として収録。

目次

はじめに
1章	基本的な手法
	1.1 メタプログラミングとは何か
		1.1.1 DRY
		1.1.2 注意
		1.1.3 ボトムアッププログラミング
	1.2 Rubyの基礎
		1.2.1 クラスとモジュール
		1.2.2 メソッド参照
		1.2.3 Metaid
		1.2.4 変数の参照
		1.2.5 ブロック、メソッド、Proc
	1.3 メタプログラミング手法
		1.3.1 メソッド参照の先送り
		1.3.2 ジェネレーティブプログラミング:リアルタイムでのコードの記述
		1.3.3 継続
		1.3.4 バインディング
		1.3.5 内省とObjectSpace:データとメソッドの実行時の調査
		1.3.6 プロキシクラスによる委譲
		1.3.7 モンキーパッチ
		1.3.8 既存のメソッドへの機能の追加
		1.3.9 モジュール化
	1.4 関数型プログラミング
		1.4.1 高階関数
		1.4.2 Enumerable
		1.4.3 Enumerator
	1.5 例
		1.5.1 実行時の機能の変更
		1.5.2 Railsのルーティングコード
	1.6 参考文献
2章	ActiveSupportとRailTies
	2.1 Rubyで見逃しているもの
	2.2 コードの読み方
		2.2.1 コードを特定する方法
		2.2.2 コールスタックを読む
		2.2.3 RubyとRailsのデバッグ
		2.2.4 出発点
		2.2.5 テストを読む
		2.2.6 最新情報の取得
	2.3 ActiveSupport
	2.4 コア拡張
	2.5 RailTies
		2.5.1 Railsのコンフィグレーション
		2.5.2 アプリケーションを初期化するための20の手順
		2.5.3 リクエストのディスパッチ
	2.6 参考文献
3章	Railsプラグイン
	3.1 プラグインの概要
		3.1.1 プラグインのロード
		3.1.2 Railsプラグインのインストール
	3.2 プラグインの作成
	3.3 プラグインの例
		3.3.1 account_locationプラグイン
		3.3.2 ssl_requirementプラグイン
		3.3.3 http_authenticationプラグイン
	3.4 プラグインのテスト
		3.4.1 プラグインデータベースの依存関係のテスト
	3.5 参考文献
4章	データベース
	4.1 データベース管理システム
		4.1.1 PostgreSQL
		4.1.2 MySQL
		4.1.3 SQLite
		4.1.4 Microsoft SQL Server
		4.1.5 Oracle
	4.2 LOB
		4.2.1 データベースストレージ
		4.2.2 ファイルシステムストレージ
		4.2.3 X-Sendfileによるデータ送信
		4.2.4 静的ファイルの処理
		4.2.5 Railsでのアップロードの管理
	4.3 高度なデータベース機能
		4.3.1 アプリケーションデータベースと統合データベース
		4.3.2 制約
		4.3.3 複合キー
		4.3.4 トリガ、ルール、ストアドプロシージャ
		4.3.5 例
	4.4 複数のデータベースへの接続
		4.4.1 Magic Multi-Connections
	4.5 キャッシュ
	4.6 負荷分散と高可用性
		4.6.1 MySQL
		4.6.2 PostgreSQL
		4.6.3 Oracle
		4.6.4 Microsoft SQL Server
	4.7 LDAP
		4.7.1 ActiveLDAP
		4.7.2 LDAPによる認証
	4.8 参考文献
5章	セキュリティ
	5.1 アプリケーションの問題
		5.1.1 認証
		5.1.2 クライアントを信用しない
		5.1.3 安全なフォールバック
		5.1.4 隠すことによるセキュリティ
		5.1.5 エラーメッセージの保護
		5.1.6 ブラックリストではなくホワイトリスト
	5.2 Webの問題
		5.2.1 Railsセッション
		5.2.2 クロスサイトスクリプティング
		5.2.3 クロスサイトリクエストフォージェリ
		5.2.4 正規化
	5.3 SQLインジェクション
	5.4 Rubyの環境
		5.4.1 シェルの使用
		5.4.2 オブジェクトの汚染
	5.5 参考文献
6章	パフォーマンス
	6.1 計測ツール
		6.1.1 ブラックボックス解析
		6.1.2 コードの計測
		6.1.3 Rails Analyzer Tools
	6.2 Railsの最適化の例
		6.2.1 アクションのプロファイリング
		6.2.2 最適化と再プロファイリング
		6.2.3 ベンチマーク
	6.3 ActiveRecordのパフォーマンス
		6.3.1 SQLへの急降下
		6.3.2 1+N問題
		6.3.3 インデックス
		6.3.4 データベースのパフォーマンスの計測
	6.4 アーキテクチャのスケーラビリティ
		6.4.1 セッション
		6.4.2 キャッシュ
	6.5 その他のシステム
		6.5.1 正しいツールの選択
		6.5.2 ActionMailer
	6.6 参考文献
7章	REST、リソース、Webサービス
	7.1 RESTとは何か
		7.1.1 動詞
		7.1.2 リソース
		7.1.3 表現とコンテンツタイプ
		7.1.4 ステートレス性
	7.2 RESTfulアーキテクチャの利点
		7.2.1 概念的な単純さ
		7.2.2 キャッシュとスケーラビリティ
		7.2.3 変更への堅牢性
		7.2.4 統一性
	7.3 RESTful Rails
		7.3.1 RESTfulルーティング
		7.3.2 リソースベースの名前付きルート
		7.3.3 ActionViewサポート
		7.3.4 コンテンツタイプ
		7.3.5 HTTPキャッシュ
		7.3.6 HTTPレスポンスステータスコード
		7.3.7 ActiveResource:RESTfulサービスの利用
		7.3.8 Action Web Service
	7.4 ケーススタディ:Amazon S3
		7.4.1 概念と用語
		7.4.2 認証
		7.4.3 アーキテクチャと操作
		7.4.4 S3クライアントとS3サーバー
	7.5 参考文献
8章	i18nとL10n
	8.1 ロケール
	8.2 文字エンコーディング
		8.2.1 ASCII
	8.3 Unicode
		8.3.1 UTF
	8.4 RailsとUnicode
		8.4.1 Ruby 1.9の多言語化
		8.4.2 ActiveSupport::Multibyte
		8.4.3 Unicodeの正規化
		8.4.4 UTF-8入力のフィルタリング
		8.4.5 UTF-8の格納
		8.4.6 UTF-8の処理
		8.4.7 文字セットの変換
	8.5 RailsのL10n
		8.5.1 インターフェイスとリソースの翻訳
		8.5.2 ロケール固有の設定
		8.5.3 モデル翻訳
		8.5.4 Globalizeの例:アドレス帳
	8.6 参考文献
9章	Railsの統合と拡張
	9.1 Railsコンポーネントの置換
		9.1.1 ActiveRecordの置換
		9.1.2 他のテンプレートエンジン
	9.2 Railsコンポーネントの統合
		9.2.1 ActiveRecord
		9.2.2 ActionMailer
	9.3 Railsへの貢献
		9.3.1 パッチの提供
		9.3.2 Railsの単体テスト
	9.4 参考文献
10章	大規模なプロジェクト
	10.1 バージョン管理
		10.1.1 一元型バージョン管理
		10.1.2 分散型バージョン管理
		10.1.3 ブランチとマージ
		10.1.4 データベースのマイグレーション
	10.2 Issue Tracking
	10.3 プロジェクトの構造
		10.3.1 Subversionのコンフィグレーション
		10.3.2 Subversionの外部定義とPiston
		10.3.3 Railsバージョン
		10.3.4 環境の初期化
		10.3.5 gemのインクルード
		10.3.6 マルチアプリケーションプロジェクト
	10.4 Railsの導入
		10.4.1 何も共有しないことによるスケーラビリティ
		10.4.2 フロントエンドWebサーバー
		10.4.3 アプリケーションサーバー
		10.4.4 Capistrano
		10.4.5 Vlad the Deployer
		10.4.6 継続的な統合
	10.5 参考文献
付録A	Rails 2.1におけるプラグイン環境の変化
    A.1 Gitリポジトリからのプラグインのインストール
        A.1.1 script/pluginコマンドによるインストール
        A.1.2 gitコマンドによるインストール
        A.1.3 アーカイブファイルからのインストール
    A.2 RubyGemsによるプラグインのインストール
    A.3 本書で紹介されているプラグインのGitリポジトリ一覧
索引