書籍概要

[改訂2版]Ruby技術者認定試験合格教本(Silver/Gold対応)Ruby公式資格教科書

著者
発売日
更新日

概要

Ruby技術者認定試験Silver/Goldに対応した公式テキストの改訂2版です。試験バージョン2.1にしっかり対応しました。試験対策としてはもちろんですが,Rubyの文法をはじめ,オブジェクト指向や各種ライブラリなど,Rubyを使いこなす上で必須の基礎知識もしっかり身につきます。巻末にはRuby技術者認定試験Silver/Goldに準拠した練習問題および模擬試験が付属します。

こんな方におすすめ

  • 初級から中級のRubyプログラマ
  • Rubyの実力を証明したいエンジニア

『Ruby技術者認定試験合格教本(Silver/Gold対応) Ruby公式資格教科書』をお持ちの方へ

本書は2015年に刊行した『Ruby技術者認定試験合格教本(Silver/Gold対応) Ruby公式資格教科書』において,Ruby試験version 2.1への対応が不完全であった箇所の見直しを中心に,補足・修正を図った改訂版です。

同書とターゲットとする試験(version 2.1)は同じであり,模擬試験(第7章,第8章)についても問題の入れ替え等は行っておりません。同書をお持ちの方で,特に模擬試験を目的として本書の購入をご検討されている場合にはご注意ください。

同書をお持ちの場合は,サポートページから正誤表PDFをご入手いただくことで,同等の内容をご入手いただけます。
お確かめのうえ,本書の購入をご検討いただきますよう,何卒よろしくお願いいたします。

目次

  • はじめに

第1章 Ruby技術者認定試験概要

1-1 Ruby市場について

  • 1-1-1 アジャイル開発とRuby

1-2 Rubyの標準化

1-3 Ruby技術者認定試験制度について

  • 1-3-1 認定試験の概要と目的
  • 1-3-2 資格(試験)名称と資格区分
  • 1-3-3 試験実施要項
  • 1-3-4 試験の申し込み方法

1-4 Gold試験に合格するために

  • 1-4-1 対策コースおよびRuby関連コースについて

第2章 実行環境

2-1 Rubyのセットアップ

  • 2-1-1 Mac OSの場合~RVM(Ruby Version Manager)
  • 2-1-2 Windowsの場合~RubyInstaller for Windows

2-2 はじめてのRuby~Rubyチュートリアル

  • 2-2-1 irb
  • 2-2-2 変数と定数
  • 2-2-3 関数とクラス

2-3 コマンドラインオプションと環境変数

  • 2-3-1 組み込み定数とコマンドラインオプション
  • 2-3-2 requireとload

2-4 APIリファレンス

  • 2-4-1 コメントとRDoc

第2章のまとめ

第3章 文法

3-1 識別子

  • 3-1-1 命名規則
  • 3-1-2 変数と定数のスコープ

3-2 数値

  • 3-2-1 数値リテラル
  • 3-2-2 数値演算
  • 3-2-3 数値クラスと演算子の再定義
  • 3-2-4 メソッド

3-3 論理値

  • 3-3-1 条件分岐
  • 3-3-2 擬似変数
  • 3-3-3 論理演算子

3-4 文字列

  • 3-4-1 文字列リテラルと式展開
  • 3-4-2 バックスラッシュ記法
  • 3-4-3 ヒアドキュメント
  • 3-4-4 パーセント記法
  • 3-4-5 文字列演算
  • 3-4-6 sprintfによるフォーマット指定

3-5 シンボル

  • 3-5-1 シンボルリテラル
  • 3-5-2 オブジェクトの同値性と同一性
  • 3-5-3 変数と値

3-6 配列

  • 3-6-1 配列リテラル
  • 3-6-2 添字演算子
  • 3-6-3 多重代入と可変長引数
  • 3-6-4 配列の演算
  • 3-6-5 for式

3-7 ハッシュ

  • 3-7-1 ハッシュリテラル
  • 3-7-2 ハッシュ引数

3-8 範囲

  • 3-8-1 範囲リテラル
  • 3-8-2 case式
  • 3-8-3 while式とuntil式

3-9 正規表現とコマンド出力

  • 3-9-1 正規表現オブジェクト
  • 3-9-2 正規表現記号とオプション
  • 3-9-3 コマンド出力

3-10 ブロックとProc

  • 3-10-1 ブロックの基本
  • 3-10-2 ブロックのフォーマットと判定
  • 3-10-3 Proc
  • 3-10-4 lambda
  • 3-10-5 ブロックを受けるメソッド
  • 3-10-6 スレッド
  • 3-10-7 ファイバ

3-11 脱出構文と例外処理,大域脱出

  • 3-11-1 脱出構文
  • 3-11-2 例外処理
  • 3-11-3 例外クラスを指定した捕捉
  • 3-11-4 catch/throwによる大域脱出

第3章のまとめ

第4章 オブジェクト指向

4-1 クラス定義

  • 4-1-1 class式
  • 4-1-2 インスタンスメソッドと初期化メソッド
  • 4-1-3 クラス継承
  • 4-1-4 super

4-2 インスタンスメソッド

  • 4-2-1 クラスオブジェクト
  • 4-2-2 継承したクラスオブジェクト
  • 4-2-3 メソッドの探索経路
  • 4-2-4 継承チェーンとmethod_missing
  • 4-2-5 オープンクラス

4-3 Mix-in

  • 4-3-1 モジュールの定義とインクルード
  • 4-3-2 モジュールのメソッドの探索経路

4-4 特異クラス

  • 4-4-1 特異クラスの性質
  • 4-4-2 特異クラスの参照と定義
  • 4-4-3 extendメソッド
  • 4-4-4 prependメソッド
  • 4-4-5 Refinements

4-5 クラスメソッド

  • 4-5-1 Classクラス
  • 4-5-2 クラスメソッドの定義

4-6 メソッドの可視性と組み込み関数

  • 4-6-1 メソッドの可視性
  • 4-6-2 Kernelモジュールと関数

4-7 変数と定数

  • 4-7-1 ローカル変数とグローバル変数
  • 4-7-2 インスタンス変数
  • 4-7-3 クラス変数
  • 4-7-4 ネストしたスコープの定義
  • 4-7-5 ネストしたスコープの参照

第4章のまとめ

第5章 組み込みクラス

5-1 BasicObjectクラス

5-2 Kernelモジュール

5-3 Objectクラス

  • 5-3-1 オブジェクトのID
  • 5-3-2 オブジェクトのクラス
  • 5-3-3 オブジェクトの比較
  • 5-3-4 オブジェクトのメソッド一覧
  • 5-3-5 オブジェクトの複製
  • 5-3-6 オブジェクトの凍結
  • 5-3-7 オブジェクトの汚染
  • 5-3-8 インスタンス変数にアクセスする
  • 5-3-9 未定義メソッドの呼び出し
  • 5-3-10 オブジェクトの文字列表現
  • 5-3-11 特別なオブジェクト

5-4 数値型クラス - Numeric,Float,Integer,Fixnum,Bignum,Rational,Complex

  • 5-4-1 Numericクラス
  • 5-4-2 Floatクラス
  • 5-4-3 Integerクラス
  • 5-4-4 Fixnumクラス,Bignumクラス
  • 5-4-5 Rationalクラス
  • 5-4-6 Complexクラス

5-5 Encodingクラス

5-6 Stringクラス

  • 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-6-11 文字列の割り付け
  • 5-6-12 非表示文字列を変換する
  • 5-6-13 文字列をアンパックする
  • 5-6-14 文字列内での検索
  • 5-6-15 次の文字列を求める
  • 5-6-16 文字列に対する繰り返し
  • 5-6-17 他のクラスへの変換

5-7 Arrayクラス

  • 5-7-1 配列の生成
  • 5-7-2 配列に要素を追加する
  • 5-7-3 配列の要素を変更する
  • 5-7-4 配列の要素を参照する
  • 5-7-5 配列の要素を調べる
  • 5-7-6 配列の要素を削除する
  • 5-7-7 配列の演算
  • 5-7-8 配列の比較
  • 5-7-9 配列の要素での繰り返し
  • 5-7-10 配列の要素を連結する
  • 5-7-11 配列の長さを求める
  • 5-7-12 配列をソートする
  • 5-7-13 配列を変換する
  • 5-7-14 配列を組み合わせて生成する
  • 5-7-15 配列をパックする

5-8 Hashクラス

  • 5-8-1 ハッシュの生成
  • 5-8-2 ハッシュのキーや値を取得する
  • 5-8-3 ハッシュを変更する
  • 5-8-4 ハッシュを調べる
  • 5-8-5 ハッシュを使った繰り返し
  • 5-8-6 ハッシュをソートする
  • 5-8-7 ハッシュを変換する

5-9 Symbolクラス

  • 5-9-1 定義済みのSymbolオブジェクトを取得する
  • 5-9-2 Symbolオブジェクトに対応する文字列を取得する

5-10 Dirクラス,Fileクラス,IOクラス

  • 5-10-1 Dirクラス
  • 5-10-2 Fileクラス
  • 5-10-3 IOクラス

5-11 Timeクラス

  • 5-11-1 Timeオブジェクトの生成
  • 5-11-2 Timeオブジェクトの属性を取得する
  • 5-11-3 タイムゾーンを変更する
  • 5-11-4 Timeオブジェクトの演算
  • 5-11-5 Timeオブジェクトの変換

5-12 Regexpクラス

  • 5-12-1 正規表現オブジェクトを生成する
  • 5-12-2 正規表現オブジェクトでマッチングする
  • 5-12-3 正規表現の特殊文字をエスケープする
  • 5-12-4 マッチした結果を取得する
  • 5-12-5 正規表現の論理和を求める
  • 5-12-6 正規表現オブジェクトのオプションや属性を取得する

5-13 Exceptionクラス

5-14 Procクラス

  • 5-14-1 ブロック付きメソッドの引数として利用する
  • 5-14-2 手続きオブジェクトの中での処理の中断
  • 5-14-3 Proc.new以外の手続きオブジェクト生成

5-15 Moduleクラス

  • 5-15-1 定義されている定数に関するメソッド
  • 5-15-2 メソッドの設定
  • 5-15-3 評価する
  • 5-15-4 クラス変数を扱う
  • 5-15-5 モジュールの機能を取り込む
  • 5-15-6 モジュール関数にする
  • 5-15-7 祖先クラスを取得する

5-16 Enumerableモジュール

5-17 Comparableモジュール

5-18 Marshalモジュール

5-19 Threadクラス

  • 5-19-1 スレッドの生成
  • 5-19-2 スレッドの状態
  • 5-19-3 スレッドの実行,一時停止,終了
  • 5-19-4 スレッド終了時のensure節
  • 5-19-5 スレッド中の例外
  • 5-19-6 スレッドのデッドロック
  • 5-19-7 スレッドのリスト
  • 5-19-8 スレッドの切り替え
  • 5-19-9 スレッドの終了を待つ
  • 5-19-10 スレッドの優先度
  • 5-19-11 スレッド固有のデータ

5-20 Fiberクラス

第5章のまとめ

第6章 添付ライブラリ

6-1 添付ライブラリ

6-2 テキスト

  • 6-2-1 StringIO

6-3 ファイルフォーマット

  • 6-3-1 yaml
  • 6-3-2 json
  • 6-3-3 csv

6-4 ファイル

  • 6-4-1 fileutils

6-5 ネットワーク

  • 6-5-1 socket
  • 6-5-2 uri
  • 6-5-3 net/http

6-6 日付・時間

  • 6-6-1 date

6-7 マルチスレッド・同期

  • 6-7-1 thread

6-8 開発ツール

  • 6-8-1 test/unit
  • 6-8-2 RDoc

6-9 コマンドライン

  • 6-9-1 optparse

第6章のまとめ

第7章 Ruby技術者認定試験Silver演習問題

問題篇 基礎力確認問題

問題篇 模擬試験

解答篇 基礎力確認問題

解答篇 模擬試験

第8章 Ruby技術者認定試験Gold演習問題

問題篇 基礎力確認問題

問題篇 模擬試験

解答篇 基礎力確認問題

解答篇 模擬試験

  • あとがき
  • 索引

サポート

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2017年8月30日最終更新)

P.271,コード5-198の4行目


=> 0


=> 1

P.273,コード5-204の1~3行目


 > t1 = Time.mktime(2011, 1, 2, 3, 4, 5, 6)
  => 2017-01-02 03:04:05 +0900
 > t2 = Time.mktime(2011, 2, 3, 4, 5, 6, 7)


 > t1 = Time.mktime(2017, 1, 2, 3, 4, 5, 6)
  => 2017-01-02 03:04:05 +0900
 > t2 = Time.mktime(2017, 2, 3, 4, 5, 6, 7)

商品一覧