【2023最新】「ruby」のおすすめ本!人気ランキング
この記事では、「ruby」のおすすめ本をランキング形式で紹介していきます。インターネット上の口コミや評判をベースに集計し独自のスコアでランク付けしています。
Amazonで詳しく見る
紹介文
基本文法からライブラリ活用まで、一番わかりやすいRubyの入門書。到達度がわかる練習問題付き。
第0章 環境を構築しよう
第1章 Rubyの世界へようこそ!
第2章 プログラムの基本とデータを理解する
第3章 データのまとまりを扱う
第4章 条件に応じてプログラムの処理を変える
第5章 繰り返し処理する
第6章 メソッドで処理する
第7章 クラスでプログラムをまとめる
第8章 エラー処理と例外をプログラミングする
第9章 モジュールやライブラリを活用する
第10章 実践的なプログラミングに挑戦する
Amazonで詳しく見る
紹介文
表現力の高い文法と、強力で内容の豊かなAPIを持つコアクラスライブラリを備えた動的プログラミング言語であるRubyは、プログラミングの楽しさを感じる言語として世界中のプログラマから大きな支持を集めている。本書ではRubyプログラミング言語を徹底的に、かつわかりやすく解説。字句構造、データ型、式と演算子から条件分離、関数プログラミング、クラスとモジュール、メタプログラミングまでRuby言語のすべてを包括的に説明する。Rubyコアプラットフォームやプログラミング環境についても詳述。
1章 イントロダクション
2章 Rubyプログラムの構造と実行
3章 データ型とオブジェクト
4章 式と演算子
5章 文と制御構造
6章 メソッド、proc、lambda、クロージャ
7章 クラスとモジュール
8章 リフレクションとメタプログラミング
9章 Rubyプラットフォーム
10章 Ruby環境
Amazonで詳しく見る
紹介文
Railsをやる前に、Rubyを知ろう。みなさんが「Rubyをちゃんと理解しているRailsプログラマ」になれるように、Rubyの基礎知識から実践的な開発テクニックまで、丁寧に解説します。
本書を読み進める前に
Rubyの基礎を理解する
テストを自動化する
配列や繰り返し処理を理解する
ハッシュやシンボルを理解する
正規表現を理解する
クラスの作成を理解する
モジュールを理解する
例外処理を理解する
yieldとProcを理解する
Rubyのデバッグ技法を身につける
Rubyに関するその他のトピック
Amazonで詳しく見る
紹介文
「たのしい開発」を求めて
Rubyの基礎知識
Rubyを使ってみよう
Ruby on Railsとは
Railsを触ってみよう
Rubyの文化
自動化されたテスト
アジャイル開発とRuby
Rubyのコミュニティ
とある企業のRuby導入事例
「楽しい開発」の答え
RubyとRailsをもっと知りたい方へ
Amazonで詳しく見る
紹介文
いちばん売れているRuby入門書の決定版。
初版から17年。改訂とともに変化しながら、ずっと読まれ続けている定番書です。
第6版では、最新のバージョンに対応。
プログラミング初心者でも読み解けるように、
チュートリアル、基礎、クラス、実践とテーマを切り分けて、平易に解説。
Rubyの基礎から応用までがわかる一冊。
第1部 Rubyをはじめよう
第2部 基礎を学ぼう
第3部 クラスを使おう
第4部 ツールを作ってみよう
Amazonで詳しく見る
紹介文
これから学ぶ人のベストな一冊!
Webの全体像から、HTTPでやりとりする仕組み、さまざまなデータ形式、Webアプリケーションの開発、セキュリティ、システムの構築・運用まで、これからWebにかかわる人が知っておきたい知識をこの一冊で丸ごと解説!
すべての項目の解説は、徹底的にイラスト図解化。
これから仕事に必要な知識を学ぶ方に、すばやく、たのしく知識を身につけていただけるよう、読みやすさ、わかりやすさにこだわって制作しています。
・知識ゼロから全体像がつかめる!
・よく使われる用語の意味がわかる!
・技術の仕組みがスムーズに学べる!
実務に生かせる知識が、確実に身につく、これから学ぶ人のベストな一冊です!
<主な対象読者>
・これからIT系の仕事に就かれる方
・これから社内の情報システムを担当される方
・Webシステムに関連する技術と実務を、幅広く、バランスよく学びたい方
Chapter1 Web技術とは
1-01 Webとは
1-02 インターネットとWeb
1-03 Webのさまざまな用途
1-04 WebブラウザとHTML
1-05 WebサーバーとHTTP
1-06 Webページが表示される流れ
1-07 静的ページと動的ページ
1-08 動的処理
1-09 Webの標準化
1-10 Webの設計思想
Chapter2 Webとネットワーク技術
2-01 Webを実現するコンピューターネットワーク
2-02 インターネットの標準プロトコル
2-03 TCP/IP
2-04 IPアドレスとポート番号
2-05 URLとドメイン
2-06 DNS
2-07 HTTP
Chapter3 HTTPでやりとりする仕組み
3-01 HTTPメッセージ
3-02 HTTPリクエスト・レスポンス
3-03 HTTPメソッド
3-04 ステータスコード
3-05 メッセージヘッダー
3-06 TCPのやりとり
3-07 HTTP1.1のやりとり
3-08 HTTP2のやりとり
3-09 HTTP2での改良点
3-10 HTTPS
3-11 HTTPSのやりとり
3-12 ステートフルとステートレス
3-13 クッキー
3-14 セッション
3-15 URI
Chapter4 Webのさまざまなデータ形式
4-01 HTML
4-02 Webページで使用される画像形式
4-03 XML
4-04 CSS
4-05 スクリプト言語
4-06 DOM
4-07 JSON
4-08 フィード
4-09 マイクロフォーマット
4-10 動画配信
4-11 メディアタイプ
Chapter5 Webアプリケーションの基本
5-01 Webアプリケーションの3層構造
5-02 MVCモデル
5-03 フレームワーク
5-04 Webサーバー
5-05 Webクライアント
5-06 アプリケーションサーバー
5-07 データベース管理システム
5-08 キャッシュサーバー
5-09 Ajax
5-10 Webプログラミング
5-11 Web API
5-12 マッシュアップ
5-13 CGI
5-14 サーバー間の連携
Chapter6 Webのセキュリティと認証
6-01 Webシステムのセキュリティ
6-02 パスワードクラッキング、DoS攻撃
6-03 Webシステムの特徴を利用した攻撃
6-04 Webアプリケーションの脆弱性を狙う攻撃
6-05 Webシステムの脆弱性
6-06 ファイアウォール
6-07 IDS、IPS
6-08 WAF
6-09 暗号化
6-10 公開鍵証明書
6-11 認証
6-12 認可
6-13 CAPTCHA
Chapter7 Webシステムの構築と運用
7-01 提供するサービスの検討
7-02 利用言語、ソフトウェアの検討
7-03 ネットワーク構成の検討
7-04 サーバー構成の検討
7-05 サーバー基盤の検討
7-06 負荷分散
7-07 サーバー設計・構築
7-08 データベース設計
7-09 アプリケーション設計
7-10 バックアップ運用
7-11 ログ運用
7-12 Webサイトのパフォーマンス
7-13 脆弱性診断
Amazonで詳しく見る
紹介文
プログラミングの基礎からWebアプリの開発まで!サンプルを動かしながら学ぶことで、生きた知識が身につくRuby入門書の決定版。
第1部 導入編-プログラムを書いてみよう
第2部 入門編-動くアプリを作りながら文法を確認しよう
第3部 実践編-データと処理とでクラスにしよう
第4部 発展編-データをファイルに保存しよう
第5部 応用編1-データベースを利用しよう
第6部 応用編2-Webアプリケーションにチャレンジしよう
第7部 応用編3-蔵書管理アプリをWebアプリケーションにしよう
付録 リファレンス編
Amazonで詳しく見る
紹介文
Railsアプリの基本から実践的なノウハウまでこの1冊で!
本書は、Ruby on Rails(以下Rails)を使ってWebアプリケーションを開発するための解説書です。
RailsでどのようにWebアプリケーションを作るのかという基本的なところから、現場のニーズに合わせてどのように機能を追加していくのか、テストはどのように行うのか、複数人で開発していく場合の方法といった実践的なトピックまで、幅広くカバーしています。
本書を読んだ方が単にRailsでWebアプリケーションを作れるようになるだけでなく、「Railsらしいアプリケーションコード」を書けるようになり、そして開発チームの仲間とともに実現したいことを実現できるように、という視点で必要な情報をまとめた1冊です。
なお、本書の対応バージョンはRuby 2.5/Rails5.2です。Rails5.2から導入されたActive Storageやcredentials.yml.encについても解説しています。macOS/Windows 10(64ビット版)対応。
■読者対象について
Ruby以外の言語でのWebアプリケーションの開発や、オブジェクト指向プログラミングについては知識・経験があるものの、RubyやRailsについては初めて学ぶ方を主な対象にしています。
ただし、Webアプリケーションやオブジェクト指向が初めての方にも理解しやすいように説明するように努めています。
■構成と内容について
本書の構成は以下の通りです。
<入門編>
Chapter 1 RailsのためのRuby入門
Chapter 2 Railsアプリケーションをのぞいてみよう
Chapter 3 タスク管理アプリケーションを作ろう
<レベルアップ編>
Chapter 4 現実の複雑さに対応する
Chapter 5 テストをはじめよう
Chapter 6 Railsの全体像を理解する
Chapter 7 機能を追加してみよう
<発展編>
Chapter 8 RailsとJavaScript
Chapter 9 複数人でRailsアプリケーションを開発する
Chapter 10 Railsアプリケーションと長く付き合うために
章ごとの内容は以下の通りです。
Chapter1では、Railsのアプリケーションのコードを読み書きするために最低限必要となるようなRubyの基礎知識を解説していきます。
Chapter2では、RubyやRailsが動作する環境を構築するとともに、簡単なサンプルアプリケーションを作成し、中身の構成を解説していきます。
Chapter3では、シンプルなタスク管理アプリケーションの作成を通じて、CRUDと呼ばれるソフトウェアの基本的な機能をRailsで実装する方法について学んでいきます。
Chapter4では、Chapter3で作成したアプリケーションに、いくつかの機能を追加していきます。具体的には「データ内容の制限」「検証」「コールバック」「フィルタ」「ログイン機能の追加」「関連」「検索」について解説していきます。
Chapter5では、Railsにあらかじめ用意されている「自動テスト」という仕組みについて、利用方法や注意事項を解説します。
Chapter6では、Railsの備える機能や、Railsを取り巻く世界の全体像を改めて一望し、これまで取り上げる機会のなかったいくつかの重要な要素について解説していきます。
Chapter7では、Railsアプリケーションで比較的よくある具体的な機能を実現するやり方を、Chapter4までで作成したアプリケーションへの機能追加という形で紹介していきます。
Chapter8では、Railsを利用する際のJavaScriptの扱い方について解説していきます。モダンなJavaScriptについても扱っています。
Chapter9では、複数人で開発を行う場合に重要になってくる知識や、注意すべきポイントについて解説していきます。
Chapter10では、Railsアプリケーションと長く付き合っていくために特に重要なテーマとして、「バージョンアップに対してどのように取り組むべきか」「Railsアプリケーションコードが複雑になっていくことにどうに立ち向かい、メンテナンスしやすい状態の維持を図るのか」について扱います。
Amazonで詳しく見る
紹介文
本書は、プログラミング言語Rubyの言語仕様や開発の現場で役立つRubyの知識を説明した本です。豊富なサンプルコードで文法を学び、例題でプログラミングの流れを体験できます。第1版(2017年11月発行)は、初心者の目線にたった丁寧な解説が好評で多くのRuby初学者に愛読され、いまやRuby入門書の定番とも言える存在です。2020年末のRuby 3.0のリリースに伴い、全章にわたって記述内容を見直し、Ruby 3.0までの変更点や新機能に合わせて加筆・修正を行いました。また、第1版にて読者から「難しい、わかりづらい」という声の多かったトピックの説明を改善するなど、より初心者に親切な内容に刷新しています。
第1章 本書を読み進める前に
1.1 イントロダクション
1.1.1 この章で説明すること
1.2 本書の概要
1.2.1 対象となる読者
1.2.2 本書で説明する内容と説明しない内容
1.2.3 Railsアプリの開発にも本書は役に立つか?
1.2.4 本書の特徴と効果的な学習方法
1.2.5 対象となるRubyのバージョン
1.3 Rubyについて
1.3.1 Rubyってどんなプログラミング言語?
1.3.2 Rubyの処理系
1.3.3 Rubyのライセンス
1.3.4 Ruby 3.0について
1.4 Rubyのインストール
1.4.1 macOS/Linuxの場合
1.4.2 Windowsの場合
1.4.3 その他の方法
1.4.4 サンプルコードの動作確認環境について
1.5 エディタ/IDEについて
1.5.1 エディタやIDEで不可欠な機能や設定
1.6 Rubyを動かしてみる
1.6.1 本書のサンプルコードとその表示例について
1.6.2 ファイルに保存したRubyプログラムを実行する
1.7 本書のサンプルコードについて
1.7.1 サンプルコードがうまく動かない場合
1.8 Rubyの公式リファレンスについて
1.9 この章のまとめ
第2章 Rubyの基礎を理解する
2.1 イントロダクション
2.1.1 この章の例題:FizzBuzzプログラム
2.1.2 FizzBuzzプログラムの実行例
2.1.3 この章で学ぶこと
2.2 Rubyに関する基礎知識
2.2.1 すべてがオブジェクト
2.2.2 メソッド呼び出し
2.2.3 文の区切り
2.2.4 コメント
2.2.5 識別子と予約語
2.2.6 空白文字
2.2.7 リテラル
2.2.8 変数(ローカル変数)の宣言と代入
2.3 文字列
2.3.1 シングルクオートとダブルクオート
2.3.2 文字列の比較
2.4 数値
2.4.1 演算子による値の比較
2.4.2 演算子の優先順位
2.4.3 変数に格納された数値の増減
2.5 真偽値と条件分岐
2.5.1 Rubyの真偽値
2.5.2 論理演算子
2.5.3 if文
2.6 メソッドの定義
2.6.1 メソッドの戻り値
2.6.2 メソッド定義における引数の( )
2.7 例題:FizzBuzzプログラムを作成する
2.7.1 作業用のディレクトリとファイルを準備する
2.7.2 一番簡単なプログラムで動作確認する
2.7.3 fizz_buzzメソッドを作成する
2.8 文字列についてもっと詳しく
2.8.1 文字列はStringクラスのオブジェクト
2.8.2 %記法で文字列を作る
2.8.3 ヒアドキュメント(行指向文字列リテラル)
2.8.4 フォーマットを指定して文字列を作成する
2.8.5 その他、文字列作成のいろいろ
2.8.6 文字と文字列の違いはない
2.9 数値についてもっと詳しく
2.9.1 基数指示子を用いた整数リテラル
2.9.2 ビット演算
2.9.3 指数表現
2.9.4 数値クラスのあれこれ
2.10 真偽値と条件分岐についてもっと詳しく
2.10.1 &&や||の戻り値と評価を終了するタイミング
2.10.2 優先順位が低いand、or、not
2.10.3 unless文
2.10.4 case文
2.10.5 条件演算子(三項演算子)
2.11 メソッド定義についてもっと詳しく
2.11.1 デフォルト値付きの引数
2.11.2 ?で終わるメソッド
2.11.3 !で終わるメソッド
2.11.4 エンドレスメソッド定義(1行メソッド定義)
2.12 その他の基礎知識
2.12.1 ガベージコレクション(GC)
2.12.2 エイリアスメソッド
2.12.3 式(Expression)と文(Statement)
2.12.4 擬似変数
2.12.5 参照の概念を理解する
2.12.6 組み込みライブラリ、標準ライブラリ、gem
2.12.7 requireとrequire_relative
2.12.8 putsメソッド、printメソッド、pメソッド、ppメソッド
2.13 この章のまとめ
第3章 テストを自動化する
3.1 イントロダクション
3.1.1 この章で学ぶこと
3.1.2 「プログラマの三大美徳」
3.2 Minitestの基本
3.2.1 テストコードのひな形
3.2.2 本書で使用するMinitestの検証メソッド
3.2.3 テストコードの実行と結果の確認
3.2.4 テストが失敗した場合の実行結果
3.2.5 実行中にエラーが発生した場合の実行結果
3.3 FizzBuzzプログラムのテスト自動化
3.3.1 putsメソッドをテストコードに置き換える
3.3.2 プログラム本体とテストコードを分離する
3.4 この章のまとめ
第4章 配列や繰り返し処理を理解する
4.1 イントロダクション
4.1.1 この章の例題:RGBカラー変換プログラム
4.1.2 RGBカラー変換プログラムの実行例
4.1.3 この章で学ぶこと
4.2 配列
4.2.1 要素の変更、追加、削除
4.2.2 配列を使った多重代入
4.3 ブロック
4.3.1 参考:JavaScriptの繰り返し処理
4.3.2 Rubyの繰り返し処理
4.3.3 配列の要素を削除する条件を自由に指定する
4.3.4 ブロックパラメータとブロック内の変数
4.3.5 do ... end と {}
4.4 ブロックを使う配列のメソッド
4.4.1 map/collect
4.4.2 select/find_all/reject
4.4.3 find/detect
4.4.4 sum
4.4.5 &とシンボルを使ってもっと簡潔に書く
4.5 範囲(Range)
4.5.1 配列や文字列の一部を抜き出す
4.5.2 n以上m以下、n以上m未満の判定をする
4.5.3 case文で使う
4.5.4 値が連続する配列を作成する
4.5.5 繰り返し処理を行う
4.6 例題:RGB変換プログラムを作成する
4.6.1 to_hexメソッドを作成する
4.6.2 to_hexメソッドをリファクタリングする
4.6.3 to_intsメソッドを作成する
4.6.4 to_intsメソッドをリファクタリングする
4.6.5 to_intsメソッドをリファクタリングする(上級編)
4.7 配列についてもっと詳しく
4.7.1 さまざまな要素の取得方法
4.7.2 さまざまな要素の変更方法
4.7.3 配列の連結
4.7.4 配列の和集合、差集合、積集合
4.7.5 多重代入で残りの全要素を配列として受け取る、または無視する
4.7.6 1つの配列を複数の引数やwhen節の条件として展開する
4.7.7 メソッドの可変長引数
4.7.8 *で配列同士を非破壊的に連結する
4.7.9 ==で等しい配列かどうか判断する
4.7.10 %記法で文字列の配列を簡潔に作る
4.7.11 文字列を配列に変換する
4.7.12 配列にデフォルト値を設定する
4.7.13 配列にデフォルト値を設定する場合の注意点
4.7.14 ミュータブル? イミュータブル?
4.8 ブロックについてもっと詳しく
4.8.1 添え字付きの繰り返し処理
4.8.2 with_indexメソッドを使った添え字付きの繰り返し処理
4.8.3 添え字を0以外の数値から開始させる
4.8.4 配列がブロックパラメータに渡される場合
4.8.5 番号指定パラメータ
4.8.6 ブロックローカル変数
4.8.7 繰り返し処理以外でも使用されるブロック
4.8.8 do...endと{}の結合度の違い
4.8.9 ブロックを使うメソッドを定義する
4.9 範囲(Range)についてもっと詳しく
4.9.1 終端や始端を持たない範囲オブジェクト
4.10 さまざまな繰り返し処理
4.10.1 timesメソッド
4.10.2 uptoメソッドとdowntoメソッド
4.10.3 stepメソッド
4.10.4 while文とuntil文
4.10.5 for文
4.10.6 loopメソッド
4.10.7 再帰呼び出し
4.11 繰り返し処理用の制御構造
4.11.1 break
4.11.2 throwとcatchを使った大域脱出
4.11.3 繰り返し処理で使うbreakとreturnの違い
4.11.4 next
4.11.5 redo
4.12 この章のまとめ
第5章 ハッシュやシンボルを理解する
5.1 イントロダクション
5.1.1 この章の例題:長さの単位変換プログラム
5.1.2 長さの単位変換プログラムの実行例
5.1.3 この章で学ぶこと
5.2 ハッシュ
5.2.1 要素の追加、変更、取得
5.2.2 ハッシュを使った繰り返し処理
5.2.3 ハッシュの同値比較、要素数の取得、要素の削除
5.3 シンボル
5.3.1 シンボルと文字列の違い
5.3.2 シンボルの特徴とおもな用途
5.4 続・ハッシュについて
5.4.1 ハッシュのキーにシンボルを使う
5.4.2 キーや値に異なるデータ型を混在させる
5.4.3 メソッドのキーワード引数とハッシュ
5.5 例題:長さの単位変換プログラムを作成する
5.5.1 テストコードを準備する
5.5.2 いろんな単位を変換できるようにする
5.5.3 convert_lengthメソッドを改善する
5.6 ハッシュとキーワード引数についてもっと詳しく
5.6.1 ハッシュで使用頻度の高いメソッド
5.6.2 **でハッシュを展開させる
5.6.3 ハッシュを使った擬似キーワード引数
5.6.4 任意のキーワードを受け付ける**引数
5.6.5 ハッシュを明示的にキーワード引数に変換する**
5.6.6 メソッド呼び出し時の{}の省略
5.6.7 ハッシュリテラルの{}とブロックの{}
5.6.8 ハッシュから配列へ、配列からハッシュへ
5.6.9 ハッシュのデフォルト値を理解する
5.6.10 その他、キーワード引数に関する高度な話題
5.7 シンボルについてもっと詳しく
5.7.1 シンボルを作成するさまざまな方法
5.7.2 %記法でシンボルやシンボルの配列を作成する
5.7.3 シンボルと文字列の関係
5.8 この章のまとめ
第6章 正規表現を理解する
6.1 イントロダクション
6.1.1 この章の例題:ハッシュ記法変換プログラム
6.1.2 ハッシュ記法変換プログラムの実行例
6.1.3 この章で学ぶこと
6.2 正規表現って何?
6.2.1 正規表現の便利さを知る
6.2.2 正規表現をゼロから学習するための参考資料
6.3 Rubyにおける正規表現オブジェクト
6.3.1 Rubularで視覚的にマッチする文字列を確認する
6.3.2 正規表現のキャプチャを利用する
6.3.3 キャプチャに名前を付ける
6.3.4 組み込み変数でマッチの結果を取得する
6.3.5 正規表現と組み合わせると便利なStringクラスのメソッド
6.4 例題:Rubyのハッシュ記法を変換する
6.4.1 テストコードを準備する
6.4.2 ハッシュ記法変換プログラムを実装する
6.5 正規表現オブジェクトについてもっと詳しく
6.5.1 正規表現オブジェクトを作成するさまざまな方法
6.5.2 case文で正規表現を使う
6.5.3 正規表現オブジェクト作成時のオプション
6.5.4 Regexp.last_matchでマッチの結果を取得する
6.5.5 組み込み変数を書き換えないmatch?メソッド
6.6 この章のまとめ
第7章 クラスの作成を理解する
7.1 イントロダクション
7.1.1 この章の例題:改札機プログラム
7.1.2 この章で学ぶこと
7.2 オブジェクト指向プログラミングの基礎知識
7.2.1 クラスを使う場合と使わない場合の比較
7.2.2 オブジェクト指向プログラミング関連の用語
7.3 クラスの定義
7.3.1 オブジェクトの作成とinitializeメソッド
7.3.2 インスタンスメソッドの定義
7.3.3 インスタンス変数とアクセサメソッド
7.3.4 クラスメソッドの定義
7.3.5 定数
7.4 例題:改札機プログラムの作成
7.4.1 テストコードを準備する
7.4.2 必要なメソッドやクラスを仮実装する
7.4.3 運賃が足りているかどうかを判別する
7.4.4 テストコードのリファクタリング
7.4.5 残りのテストケースをテストする
7.5 selfキーワード
7.5.1 selfの付け忘れで不具合が発生するケース
7.5.2 クラスメソッドの内部やクラス構文直下のself
7.5.3 クラスメソッドをインスタンスメソッドで呼び出す
7.6 クラスの継承
7.6.1 標準ライブラリの継承関係
7.6.2 デフォルトで継承されるObjectクラス
7.6.3 オブジェクトのクラスを確認する
7.6.4 ほかのクラスを継承したクラスを作る
7.6.5 superでスーパークラスのメソッドを呼び出す
7.6.6 メソッドのオーバーライド
7.6.7 クラスメソッドの継承
7.7 メソッドの可視性
7.7.1 publicメソッド
7.7.2 privateメソッド
7.7.3 privateメソッドから先に定義する場合
7.7.4 privateメソッドはサブクラスでも呼び出せる
7.7.5 クラスメソッドをprivateにしたい場合
7.7.6 メソッドの可視性を変える方法あれこれ
7.7.7 protectedメソッド
7.8 定数についてもっと詳しく
7.8.1 定数と再代入
7.8.2 定数はミュータブルなオブジェクトに注意する
7.9 さまざまな種類の変数
7.9.1 クラスインスタンス変数
7.9.2 クラス変数
7.9.3 グローバル変数と組み込み変数
7.10 クラス定義やRubyの言語仕様に関する高度な話題
7.10.1 エイリアスメソッドの定義
7.10.2 メソッドの削除
7.10.3 入れ子になったクラスの定義
7.10.4 演算子の挙動を独自に再定義する
7.10.5 等値を判断するメソッドや演算子を理解する
7.10.6 オープンクラスとモンキーパッチ
7.10.7 特異メソッド
7.10.8 クラスメソッドは特異メソッドの一種
7.10.9 ダックタイピング
7.11 この章のまとめ
第8章 モジュールを理解する
8.1 イントロダクション
8.1.1 この章の例題:rainbowメソッド
8.1.2 この章で学ぶこと
8.2 モジュールの概要
8.2.1 モジュールの用途
8.2.2 モジュールの定義
8.3 モジュールを利用したメソッド定義(includeとextend)
8.3.1 モジュールをクラスにincludeする
8.3.2 include先のメソッドを使うモジュール
8.3.3 モジュールをextendする
8.4 例題:rainbowメソッドの作成
8.4.1 実装の方針を検討する
8.4.2 テストコードを準備する
8.4.3 rainbowメソッドを実装する
8.4.4 rainbowメソッドのリファクタリング
8.4.5 あらゆるオブジェクトでrainbowメソッドを使えるようにする
8.5 モジュールを利用したメソッド定義についてもっと詳しく
8.5.1 includeされたモジュールの有無を確認する
8.5.2 Enumerableモジュール
8.5.3 Comparableモジュールと演算子
8.5.4 Kernelモジュール
8.5.5 トップレベルはmainという名前のObject
8.5.6 クラスやモジュール自身もオブジェクト
8.5.7 モジュールとインスタンス変数
8.5.8 クラス以外のオブジェクトにextendする
8.6 モジュールを利用した名前空間の作成
8.6.1 名前空間を分けて名前の衝突を防ぐ
8.6.2 名前空間でグループやカテゴリを分ける
8.6.3 入れ子なしで名前空間付きのクラスを定義する
8.6.4 トップレベルの同名クラスを参照する
8.6.5 入れ子の有無によって参照されるクラスが異なるケース
8.7 関数や定数を提供するモジュールの作成
8.7.1 モジュールに特異メソッドを定義する
8.7.2 module_functionメソッド
8.7.3 モジュールに定数を定義する
8.7.4 モジュール関数や定数を持つモジュールの例
8.8 状態を保持するモジュールの作成
8.9 モジュールに関する高度な話題
8.9.1 メソッド探索のルールを理解する
8.9.2 モジュールにほかのモジュールをincludeする
8.9.3 prependでモジュールをミックスインする
8.9.4 prependで既存メソッドを置き換える
8.9.5 有効範囲を限定できるrefinements
8.10 この章のまとめ
第9章 例外処理を理解する
9.1 イントロダクション
9.1.1 この章の例題:正規表現チェッカープログラム
9.1.2 正規表現チェッカーの実行例
9.1.3 この章で学ぶこと
9.2 例外の捕捉
9.2.1 発生した例外を捕捉しない場合
9.2.2 例外を捕捉して処理を続行する場合
9.2.3 例外処理の流れ
9.2.4 例外オブジェクトから情報を取得する
9.2.5 クラスを指定して捕捉する例外を限定する
9.2.6 例外クラスの継承関係を理解する
9.2.7 継承関係とrescue節の順番に注意する
9.2.8 例外発生時にもう一度処理をやりなおすretry
9.3 意図的に例外を発生させる
9.4 例外処理のベストプラクティス
9.4.1 安易にrescueを使わない
9.4.2 rescueしたら情報を残す
9.4.3 例外処理の対象範囲と対象クラスを極力絞り込む
9.4.4 例外処理よりも条件分岐を使う
9.4.5 予期しない条件は異常終了させる
9.4.6 例外処理も手を抜かずにテストする
9.5 例題:正規表現チェッカープログラムの作成
9.5.1 テスト駆動開発をするかどうか
9.5.2 実装のフローチャートを考える
9.5.3 文字入力を受け付けるgetsメソッド
9.5.4 実装を開始する
9.5.5 例外処理を組み込む
9.6 例外処理についてもっと詳しく
9.6.1 ensure
9.6.2 ensureの代わりにブロックを使う
9.6.3 例外処理のelse
9.6.4 例外処理と戻り値
9.6.5 begin/endを省略するrescue修飾子
9.6.6 $!と$@に格納される例外情報
9.6.7 例外処理のbegin/endを省略できるケース
9.6.8 rescueした例外を再度発生させる
9.6.9 独自の例外クラスを定義する
9.7 この章のまとめ
第10章 yieldとProcを理解する
10.1 イントロダクション
10.1.1 この章の例題:ワードシンセサイザー
10.1.2 この章で学ぶこと
10.2 ブロックを利用するメソッドの定義とyield
10.2.1 yieldを使ってブロックの処理を呼び出す
10.2.2 ブロックを引数として明示的に受け取る
10.3 Procオブジェクト
10.3.1 Procオブジェクトの基礎
10.3.2 Procオブジェクトをブロックの代わりに渡す
10.3.3 Procオブジェクトを普通の引数として渡す
10.3.4 Proc.newとラムダの違い
10.3.5 Proc.newかラムダかを判断するlambda?メソッド
10.4 例題:ワードシンセサイザーの作成
10.4.1 エフェクトの実装方法を検討する
10.4.2 テストコードも2つに分ける
10.4.3 テストコードを準備する
10.4.4 リバースエフェクトを実装する
10.4.5 エコーエフェクトを実装する
10.4.6 ラウドエフェクトを実装する
10.4.7 WordSynthクラスの実装とテスト
10.5 Procオブジェクトについてもっと詳しく
10.5.1 Procオブジェクトを実行するさまざまな方法
10.5.2 &とto_procメソッド
10.5.3 Procオブジェクトとクロージャ
10.6 この章のまとめ
第11章 パターンマッチを理解する
11.1 イントロダクション
11.1.1 この章の例題:ログフォーマッタープログラム
11.1.2 この章で学ぶこと
11.2 パターンマッチの基本
11.2.1 ハッシュをパターンマッチさせる
11.3 パターンマッチの利用パターン
11.3.1 valueパターン
11.3.2 variableパターン
11.3.3 arrayパターン
11.3.4 hashパターン
11.3.5 asパターン
11.3.6 alternativeパターン
11.3.7 findパターン
11.4 例題:ログフォーマッターの作成
11.4.1 入力データの取得
11.4.2 “OK”のログに対応する
11.4.3 404エラーのログに対応する
11.4.4 “WARN”のログに対応する
11.4.5 500エラーのログに対応する
11.4.6 参考:パターンマッチを使わない場合
11.5 パターンマッチについてもっと詳しく
11.5.1 ガード式
11.5.2 1行パターンマッチ
11.5.3 変数のスコープに関する注意点
11.5.4 自作クラスをパターンマッチに対応させる
11.6 この章のまとめ
第12章 Rubyのデバッグ技法を身につける
12.1 イントロダクション
12.1.1 この章で学ぶこと
12.2 バックトレースの読み方
12.2.1 実行環境によって変化するバックトレースの表示形式
12.3 よく発生する例外クラスとその原因
12.3.1 NameError
12.3.2 NoMethodError
12.3.3 TypeError
12.3.4 ArgumentError
12.3.5 ZeroDivisionError
12.3.6 SystemStackError
12.3.7 LoadError
12.3.8 SyntaxError(syntax error)
12.3.9 組み込みライブラリに定義されている上記以外の例外クラス
12.3.10 Rubyの標準ライブラリに含まれない例外クラス
12.4 プログラムの途中経過を確認する
12.4.1 printデバッグ
12.4.2 tapメソッドでメソッドチェーンをデバッグする
12.4.3 ログにデバッグ情報を出力する
12.4.4 デバッガ(debug.gem)を使う
12.5 汎用的なトラブルシューティング方法
12.5.1 irb上で簡単なコードを動かしてみる
12.5.2 ログを調べる
12.5.3 公式ドキュメントや公式リファレンスを読む
12.5.4 issueを検索する
12.5.5 ライブラリのコードを読む
12.5.6 テストコードを書く
12.5.7 “警戒しながら”ネットの情報を参考にする
12.5.8 パソコンの前から離れる
12.5.9 誰かに聞く
12.6 この章のまとめ
第13章 Rubyに関するその他のトピック
13.1 イントロダクション
13.1.1 この章で学ぶこと
13.2 日付や時刻の扱い
13.3 ファイルやディレクトリの扱い
13.4 特定の形式のファイルを読み書きする
13.4.1 CSV
13.4.2 JSON
13.4.3 YAML
13.5 環境変数や起動時引数の取得
13.5.1 組み込み定数
13.6 非推奨機能を使ったときに警告を出力する
13.7 eval、バッククオートリテラル、sendメソッド
13.8 Rake
13.8.1 Rakeの基本的な使い方
13.8.2 Rakeを使ったテストの一括実行
13.9 gemとBundler
13.9.1 gemのインストールと利用方法
13.9.2 Bundlerでプロジェクト内で使用するgemを一括管理する
13.9.3 Gemfile.lockの役割
13.9.4 Gemfileでgemのバージョンを指定する記号の意味
13.10 Rubyにおける型情報の定義と型検査(RBS、TypeProf、Steep)
13.10.1 typeprofコマンドで型情報を自動生成する
13.10.2 Steepで型検査を行う
13.10.3 RBSとRubyの未来
13.11 「Railsの中のRuby」と「素のRuby」の違い
13.11.1 requireやrequire_relativeを書く機会がほとんどない
13.11.2 名前空間として使われるモジュールが自動生成される
13.11.3 標準ライブラリのクラスやMinitestが独自に拡張されている
13.11.4 Rubyの構文や言語機能がまったく別の用途で使われているケースがある
13.12 この章のまとめ
Amazonで詳しく見る
紹介文
プログラミング言語の文法の学習が終わったばかりの人に、具体的なプログラムの作り方を解説する初心者脱出のための指南書。
Rubyで実践プログラミング! Webアプリ開発をはじめよう!
本書はプログラミング言語の文法はだいたいわかったけど、実際にプログラム(アプリ)はどう(あるいは何を)作ればいいの? という方向けに、具体的なプログラムの作り方を解説する初心者脱出のための指南書です。
「プログラミング言語の文法書を読み終えた後、実際にアプリを開発しようと思って調べて見ると知らない言葉ばかりで面食らった」「細かなコードは書けるけど、少し規模が大きくなるとどう作ったらよいかわからない」といった状況を打破できるように、本書では小規模なアプリ(Amazonの購入履歴を取得してExcelファイルに出力するアプリ(コマンドライン版と、それを拡張したWeb版))を実際に作りながら、その作り方と開発の流れをていねいに解説します。
プログラミング言語の文法の学習が終わったばかりの人に、具体的なプログラムの作り方を解説する初心者脱出のための指南書。
第1部 準備編
第1章 開発環境を準備しよう
第2章 Ruby の復習
第3章 作成するアプリと開発の流れ
第4章 必要な機能を実験しよう
第2部 実践編
第5章 コマンドライン版 注文履歴取得アプリを作ろう
第6章 Web アプリ版に必要な機能を実験しよう
第7章 Webアプリ版注文履歴取得アプリを作ろう
第8章 注文履歴からExcelワークシートを作ろう
第9章 まとめ
Amazonで詳しく見る
紹介文
現場で使える Ruby on Rails 5.2の基本
プログラミング言語RubyによるWebアプリケーション開発の
フレームワーク「Ruby on Rails」が、『独習』シリーズに登場!
Rails入門者だけでなく、プログラミング初心者も、
・解説→コード→演習
という形式で、自力で使えるようになるまで、
基礎から⼀通り学べる本格⼊⾨書。
Railsを実際に教えている著者による、
オブジェクト指向から、MVCモデルまで、
しっかり、じっくり学べる一冊です。
~~~目次~~~
Chapter 1 Rails概要
Chapter 2 オブジェクト指向とRubyの基本
Chapter 3 Railsの起動と簡単なアプリケーションの構築
Chapter 4 Rails全体の仕組み
Chapter 5 モデルに命を与えるActive Record
Chapter 6 モデルに実装すべき役割
Chapter 7 モデルを豊かにする仕組み
Chapter 8 ルーターとコントローラー
Chapter 9 コントローラーによるデータの扱い
Chapter 10 Action View
Chapter 11 ビューを支える機能
Chapter 12 その他のコンポーネント
Chapter 13 Active SupportとRailsのテスト
第1章 Rails概要
1.1 Railsとは
1.2 Ruby on Rails誕生の経緯
1.3 Railsの基本理念
1.4 Railsフレームワークのベースとなる3つの考え方
1.5 Railsの実習環境を作る
この章の理解度チェック
第2章 オブジェクト指向とRubyの基本
2.1 オブジェクト指向という考え方
2.2 基本的なRuby文法1:オブジェクト指向
2.3 基本的なRuby文法2:変数と定数
2.4 基本的なRuby文法3:ロジックの組み立て
2.5 Rubyでオブジェクトを活用する
この章の理解度チェック
第3章 Railsの起動と簡単なアプリケーションの構築
3.1 Railsフレームワークの実装とRailsの起動
3.2 簡単なRailsアプリケーションを構築する
3.3 Scaffoldを使ったアプリケーションの作成
この章の理解度チェック
第4章 Rails全体の仕組み
4.1 RailsコンポーネントとMVCの基礎知識
4.2 Railsのディレクトリ構成
4.3 railsコマンド
4.4 Railsコンソールを使用したRubyの実行
4.5 Rakeタスクコマンド
この章の理解度チェック
第5章 モデルに命を与えるActive Record
5.1 モデルの役割
5.2 モデルの作成
5.3 マイグレーションとシード機能
5.4 CRUD操作と標準装備のメソッド
5.5 まとめ
この章の理解度チェック
第6章 モデルに実装すべき役割
6.1 バリデーション
6.2 コールバック(割り込み呼び出し)機能
6.3 スコープ
6.4 ロック機能
この章の理解度チェック
第7章 モデルを豊かにする仕組み
7.1 モデルの関係(アソシエーション)
7.2 仮想的な属性(attributes API)
7.3 タイプオブジェクト
この章の理解度チェック
第8章 ルーターとコントローラー
8.1 ルーティングとは
8.2 ルート設定とルーティングヘルパー
8.3 リソースフルルートをより有効に使う方法
8.4 コントローラーの役割
この章の理解度チェック
第9章 コントローラーによるデータの扱い
9.1 コントローラーとデータの入出力
9.2 目的に合わせた出力フォーマットの制御
9.3 フィルター
この章の理解度チェック
第10章 372Action View
10.1 HTMLとERBテンプレート
10.2 レイアウト
10.3 ビューテンプレートの共通部品管理
10.4 ビューヘルパー
この章の理解度チェック
第11章 ビューを支える機能
11.1 アセットパイプライン
11.2 非同期更新Ajax、キャッシング機能
11.3 i18n国際化対応機能
この章の理解度チェック
第12章 その他のコンポーネント
12.1 Action Mailer(メール機能)
12.2 Active Storage(ストレージ資産の管理)
12.3 その他の有用な機能
この章の理解度チェック
第13章 Active SupportとRailsのテスト
13.1 Active Supportの拡張メソッド
13.2 テスト
この章の理解度チェック
Amazonで詳しく見る
紹介文
逆引きリファレンスの定番。Windows/Unix対応、Ruby 1.8、Ruby 1.9、JRuby 1.5対応。
第1章 Rubyの文法
第2章 文字列
第3章 配列とハッシュ
第4章 数値
第5章 ファイルとディレクトリ
第6章 入出力
第7章 日付と時刻
第8章 システムとプロセス
第9章 ネットワークプログラミング
第10章 Webプログラミング
第11章 オブジェクトとメタプログラミング
Amazonで詳しく見る
紹介文
“標準教科書”がRuby 3に対応して新登場!フレームワークやライブラリを使う前に知っておきたい基礎をしっかり習得
“標準教科書”がRuby 3に対応して12年ぶり新登場!
フレームワークやライブラリを使う前に知っておきたい
知識/概念/機能を体系的かつ網羅的に習得
Ruby言語の独学に最適な標準教科書として、長年にわたって読まれてきた
『独習Ruby』。プログラミング言語入門書の執筆で定評のある山田祥寛氏による
完全書き下ろし/Ruby 3に対応して新登場です!
本書では、Rubyでプログラミングを行う際に必要となる――フレームワークや
ライブラリを使う前に知っておきたい――基本的な知識/概念/機能、
文法/プログラムの書き方を、さまざまなサンプルプログラムを例示しながら
詳細かつ丁寧に解説します。
プログラミングの基礎知識がない方でも、解説→例題(サンプル)→理解度チェック
という3つのステップで、Rubyの文法を完全習得できます。
[ポイント]
●Ruby言語の独学に最適な教科書として好評の『独習Ruby』最新版。
初心者がRuby言語を学ぶにふさわしい一冊
●Rubyでプログラミングを行う際に必要となる基本的な知識/概念/機能、
文法/書き方を、網羅的かつ体系的に習得できる
Ruby言語の入門者、これからRuby言語で開発を始めたい初学者から、再入門者、
学生・ホビープログラマまで、「一からRuby言語を学びたい」「Rubyプログラミングの
基本をしっかり身につけたい」という方におすすめの一冊です。
■第1章 イントロダクション
1.1 Rubyとは?
1.2 Rubyアプリを開発/実行するための基本環境
1.3 Rubyプログラミングの基本
1.4 Rubyの基本ルール
1.5 デバッグ
この章の理解度チェック
■第2章 Rubyの基本
2.1 変数
2.2 データ型
2.3 配列
2.4 ハッシュ
この章の理解度チェック
■第3章 演算子
3.1 算術演算子
3.2 代入演算子
3.3 比較演算子
3.4 論理演算子
3.5 ビット演算子
3.6 演算子の優先順位と結合則
この章の理解度チェック
■第4章 制御構文
4.1 条件分岐
4.2 繰り返し処理
4.3 繰り返し処理(専用メソッド)
4.4 ループの制御
4.5 例外処理
この章の理解度チェック
■第5章 標準ライブラリ[基本]
5.1 オブジェクト指向プログラミングの基本
5.2 文字列の操作
5.3 日付/時刻の操作
この章の理解度チェック
■第6章 標準ライブラリ[配列/セット/ハッシュ]
6.1 配列
6.2 セット(集合)
6.3 ハッシュ
6.4 Enumerator
この章の理解度チェック
■第7章 標準ライブラリ[その他]
7.1 正規表現
7.2 ファイル操作
7.3 ファイルシステムの操作
7.4 HTTP経由でコンテンツを取得する
7.5 その他の機能
この章の理解度チェック
■第8章 ユーザー定義メソッド
8.1 ユーザー定義メソッドの基本
8.2 変数の有効範囲(スコープ)
8.3 引数のさまざまな記法
8.4 メソッド呼び出しと戻り値
8.5 ブロック付きメソッド
この章の理解度チェック
■第9章 オブジェクト指向プログラミング
9.1 クラスの定義
9.2 継承
9.3 カプセル化
9.4 ポリモーフィズム
この章の理解度チェック
■第10章 オブジェクト指向プログラミング[応用]
10.1 例外処理
10.2 特殊なクラス
10.3 モジュール
10.4 Objectクラス
10.5 演算子の再定義
この章の理解度チェック
■第11章 高度なプログラミング
11.1 マルチスレッド処理
11.2 メタプログラミング
この章の理解度チェック
■付録A 「練習問題」「この章の理解度チェック」解答
Amazonで詳しく見る
紹介文
大幅進化した定番MVCフレームワークの全機能が学べる!実践的なWebアプリケーション開発ノウハウを網羅!
導入編(イントロダクション
Ruby on Railsの基本
Scaffolding機能によるRails開発の基礎)
基本編(ビュー開発
モデル開発
コントローラー開発)
応用編(ルーティング
テスト
クライアントサイド開発
Railsの高度な機能)
Amazonで詳しく見る
紹介文
対象バージョンをRuby 2.6/2.7系、Rails 6.0系に変更した増補改訂版。新しいRailsのバージョンでサポートされた機能の紹介だけでなく、Dockerでの導入方法など最新の実践的内容を追加し,現在のトレンドとなる開発スタイルを紹介します。
■■Part1 Rails ~ overview
■1章 Ruby on Railsの概要
1-1 Railsを使う前に
1-2 Railsの思想
1-3 Railsをはじめよう!!
1-4 scaffoldを使ってRailsでの開発を体験しよう
■2章 Ruby on RailsとMVC
2-1 MVCアーキテクチャ
2-2 モデルを扱う
2-3 コントローラの役割
2-4 コントローラとビューの協調とビューテンプレートの基本
2-5 ビューテンプレートについて
■3章 押さえておきたいRailsの基本機能
3-1 テストの種類と実行方法
3-2 RackとRailsの関係
3-3 DBを管理する
3-4 秘密情報を管理する
3-5 HTTPとRailsアプリケーション
■■Part2 Railsの周辺知識
■4章 フロントエンドの開発手法
4-1 Webpackerを使ってJavaScriptを管理する
4-2 SprocketsによるCSSの管理
4-3 Railsに組み込まれているJavaScriptの機能
4-4 控えめなJavaScriptフレームワークStimulus
■5章 Rails標準の機能を活用して素早く機能実装する
5-1 Active Jobによる非同期実行
5-2 Active Storageによるファイルアップロード
5-3 Action Mailerによるメール送信
5-4 Action Mailboxによるメール受信
5-5 Action Textによるリッチテキスト機能
5-6 Action Cableによるリアルタイム通信
■■Part3 Webアプリケーション開発
■6章 Railsアプリケーション開発
6-1 イベント告知アプリケーションを作る
6-2 アプリケーションの作成と下準備
6-3 OAuthを利用して「GitHubでログイン」機能を作る
6-4 イベントの登録機能を作る
6-5 イベントの閲覧機能を作る
6-6 イベントの編集・削除機能を作る
6-7 登録されたイベントへの参加機能、参加キャンセル機能を作る
6-8 退会機能を作る
6-9 おわりに
■7章 Railsアプリケーションのテスト
7-1 テストコードをどう書いていくか
7-2 minitestとRSpec
7-3 テストデータを作成する
7-4 システムテスト
7-5 コントローラに対する機能テスト
7-6 モデルに対するテスト
■■Part4 Railsアプリケーションの拡張・運用
■8章 Railsアプリケーション拡張
8-1 ファイルアップロード機能を作る
8-2 gemで機能拡張をする
8-3 落穂ひろい
■9章 コード品質を上げる
9-1 CI(継続的インテグレーション)
9-2 Gemの定期update
9-3 静的解析
9-4 カバレッジ測定
9-5 アプリケーションパフォーマンス測定(APM)
■10章 コンテナを利用したRailsアプリケーションの運用
10-1 Railsアプリケーションのインフラ概要
10-2 基本的なDockerイメージの構築
10-3 開発環境におけるDockerの活用
10-4 環境によって可変する設定値や秘匿情報の管理
10-5 ログ出力
10-6 HTTPサーバとの通信
■■Part5 エキスパートRails
■11章 複雑なドメインを表現する
11-1 アーキテクチャパターンから見るRails
11-2 値オブジェクト
11-3 サービスオブジェクト
■12章 複雑なユースケースを実現する
12-1 ユースケースとモデル
12-2 データベースと紐づかないモデルを作る
12-3 フォームオブジェクト
12-4 プレゼンター
■13章 複雑なデータ操作を実装する
13-1 Concern
13-2 コールバックオブジェクト
■■Appendix Railsの開発環境構築
A-1 WindowsでのRubyとRails環境 514
A-2 Rubyのインストール
Amazonで詳しく見る
紹介文
『メタプログラミングRuby』の改訂版。Ruby 2.xとRuby 1.9、Rails4に対応したことが最大のポイント。
『メタプログラミングRuby』の改定版!
本書改訂版はRuby 2.xとRuby 1.9、Rails4に対応したことが最大のポイント。言語のアップデートに伴い文法も変わっています。さらにJRubyに対応しています。
Amazonで詳しく見る
紹介文
一線級のプログラマが座右の一冊としているシリーズの最新刊。骨太のRubyプログラミング技法を解説。
C++やJavaで開発している一線級のプログラマたちが座右の一冊としている「Effective」シリーズ。そのシリーズの最新刊となる本書は言語にRubyをとりあげ、小手先の対処法ではない骨太のRubyプログラミング技法を解説します。
ごくカンタンに実装できるがゆえに、無駄なオブジェクトを配置して見通しの悪いプログラムになっていたり、アクセスしにくいコレクションを作っていたり、機能的ではない例外処理を施していたり、知らず知らずのうちに実行速度を犠牲にしていたりなどなど、自己流では解決しない問題に正しい道筋を示してくれます。
とくに、誰か他のプログラマーに利用されるコードを、どう書くことで堅牢さや使い易さを確保するかという観点が多いことが、本書の特徴といえるでしょう。
Rubyの良さを殺しているプログラミングを撲滅し、より美しくRubyを輝かせるためのノウハウを、各種サンプルを交えてわかりやすく提示する、中級~上級者向けの一冊です。
第1章 Rubyに身体を慣らす
項目1 Rubyは何を真と考えているかを正確に理解しよう
項目2 オブジェクトを扱うときにはnilかもしれないということを忘れないようにしよう
項目3 Rubyの暗号めいたPerl風機能を避けよう
項目4 定数がミュータブルなことに注意しよう
項目5 実行時の警告に注意しよう
第2章 クラス、オブジェクト、モジュール
項目6 Rubyが継承階層をどのように組み立てるかを頭に入れよう
項目7 superのふるまいがひと通りではないことに注意しよう
項目8 サブクラスを初期化するときにはsuperを呼び出そう
項目9 Rubyの最悪に紛らわしい構文に注意しよう
項目10 構造化データの表現にはHashではなくStructを使おう
項目11 モジュールにコードをネストして名前空間を作ろう
項目12 さまざまな等値の違いを理解しよう
項目13 """"とComparableモジュールで比較を実装しよう
項目14 protectedメソッドを使ってプライベートな状態を共有しよう
項目15 クラス変数よりもクラスインスタンス変数を使うようにしよう
第3章 コレクション
項目16 コレクションを書き換える前に引数として渡すコレクションのコピーを作っておこう
項目17 nil、スカラーオブジェクトを配列に変換するには、Arrayメソッドを使おう
項目18 要素が含まれているかどうかの処理を効率よく行うために集合を使うことを検討しよう
項目19 reduceを使ってコレクションを畳み込む方法を身に付けよう
項目20 ハッシュのデフォルト値を利用することを検討しよう
項目21 コレクションクラスからの継承よりも委譲を使うようにしよう。
第4章 例外
項目22 raiseにはただの文字列ではなくカスタム例外を渡そう
項目23 できる限りもっとも対象の狭い例外を処理するようにしよう
項目24 リソースはブロックとensureで管理しよう
項目25 ensure節は最後まで実行して抜けるように作ろう
項目26 retryでは回数の上限を設け、頻度を変化させ、オーディットトレイルを残そう
項目27 スコープから飛び出したいときにはraiseではなくthrowを使おう
第5章 メタプログラミング
項目28 モジュール、クラスフックを使いこなそう
項目29 クラスフックからはsuperを呼び出そう
項目30 method_missingではなくdefine_methodを使うようにしよう
項目31 evalのさまざまなバリアントの間の違いを把握しよう
項目32 モンキーパッチの代わりとなるものを検討しよう
項目33 エイリアスチェイニングで書き換えたメソッドを呼び出そう
項目34 Procの項数の違いに対応できるようにすることを検討しよう
項目35 モジュールのprependを使うときには慎重に考えよう
第6章 テスト
項目36 MiniTest単体テストに慣れよう
項目37 MiniTest仕様テストに慣れよう
項目38 モックオブジェクトで決定論をシミュレートしよう
項目39 効果的なテストを追求しよう
第7章 ツールとライブラリ
項目40 Rubyドキュメントの扱い方を覚えよう
項目41 irbの高度な機能を使えるようになろう
項目42 Bundlerでgemの依存関係を管理しよう
項目43 依存gemのバージョンの上限を指定しよう
第8章 メモリ管理とパフォーマンス
項目44 Rubyのガベージコレクタの動作に慣れよう
項目45 Finalizerでリソースリークを防ぐセーフティネットを作ろう
項目46 Rubyプロファイリングツールを使おう
項目47 ループ内ではオブジェクトリテラルを避けよう
項目48 コストの高い計算をメモ化することを検討しよう